「
利用者:芯/サンドボックス/6
」を編集中
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''利用者:芯/サンドボックス/6'''は、ソースコードを公開するページです。 == 利用者別バイト数データ更新リクエスト == [[麻薬:データ#利用者別バイト数データ]]の内容を更新する API リクエストです。全ページのバイト数を利用者別に集計し、代表値を求めてウィキテーブルを作成します。 {| class="wikitable" ! 形式 | Python ファイル (.py) |- ! 要件 | [[#Python|Python]] および [[#Requests|Requests]] ライブラリのインストール |- ! 備考 | 122 行めと 123 行めを適切に修正してください。 |} {{格納|名前='''ソースコード'''|中身= <pre> import requests import time import datetime import os import sys S = requests.Session() URL = "https://ja.wikiwiki.li/api.php" def getSize(page): params = { "action": "query", "prop": "revisions", "titles": page, "rvprop": "size", "format": "json" } data = S.get(url=URL, params=params).json() return list(data["query"]["pages"].items())[0][1]["revisions"][0]["size"] params = { "action": "query", "list": "logevents", "leprop": "title|user|timestamp", "leaction": "create/create", "lenamespace": 0, "lelimit": 500, "format": "json" } data = S.get(url=URL, params=params).json() logEvents = data["query"]["logevents"] while "continue" in data: time.sleep(0.5) params["lecontinue"] = data["continue"]["lecontinue"] data = S.get(url=URL, params=params).json() logEvents.append(data["query"]["logevents"]) logEventsLen = len(logEvents) IPUsers = { "172.70.223.86": "ひしょう", "60.145.16.169": "芯" } byteCntArrsByUser = { "Yuito": [], "MediaWiki default": [], "キュアラプラプ": [], "せうゆ": [], "Mapilaplap": [], "芯": [], "Popbob": [], "Notorious": [], "しんたろう": [], "Long谷": [], "神座麟": [], "ケツアゴコロロ": [], "ひしょう": [], "いせ": [], "デデ二オン": [], "MagnoliaWoolery": [], "210.151.113.170": [] } processed = 0 for le in logEvents: creator = le["user"] if creator not in byteCntArrsByUser: if creator in IPUsers: creator = IPUsers[creator] else: raise Exception("An unknown IP user.") byteCntArrsByUser[creator].append(getSize(le["title"])) time.sleep(0.5) processed += 1 print("\rlogEvents to byteCntArrsByUser: {:.2f}%".format( processed / logEventsLen * 100), end="") minMaxTtlAvg = {} for user, data in byteCntArrsByUser.items(): if data: ttl = sum(data) avg = round(ttl/len(data), 2) sortedData = sorted(data) min, max = sortedData[0], sortedData[-1] minMaxTtlAvg[user] = [ str(min) + " バイト", str(max) + " バイト", str(ttl) + " バイト", str(avg) + " バイト" ] else: minMaxTtlAvg[user] = None wTable = "{| class=\"wikitable sortable\" style=\"text-align: right;\"\n! 利用者名 !! style=\"width:7em;\" | 最小値 !! style=\"width:7em;\" | 最大値 !! style=\"width:7em;\" | 合計値 !! style=\"width:7em;\" | 平均値" for user, data in minMaxTtlAvg.items(): wTable += "\n|-\n! [[利用者:" + user + "|" + user + "]]" if data: wTable += "\n| " + data[0] + "\n| " + \ data[1] + "\n| " + data[2] + "\n| " + data[3] else: for i in range(4): wTable += "\n| style=\"text-align: center;\" | -" wTable += "\n|}" now = datetime.datetime.now() revisionNote = "最終更新日時: " + str(now.year) + "/" + str(now.month) + "/" + str( now.day) + "/" + str(now.hour) + ":" + str(now.minute) + ":" + str(now.second) + " 頃" wText = "==利用者別バイト数データ==\n本節では、各々の利用者が作成してきた標準記事(リダイレクトを除く)のバイト数について、その代表値を表示する。ソース: [[利用者:芯/サンドボックス/6#利用者別バイト数データ]]\n" + \ wTable + "\n" + revisionNote params = { "action": "query", "meta": "tokens", "type": "login", "format": "json" } LOGIN_TOKEN = S.get(url=URL, params=params).json()[ "query"]["tokens"]["logintoken"] params = { "action": "login", "lgname": [ここを自分のボット利用者名で置換], "lgpassword": [ここを自分のボットパスワードで置換], "lgtoken": LOGIN_TOKEN, "format": "json" } if S.post(URL, data=params).json()["login"]["result"] == "Failed": choice = input( "\rLogin faild. Still continue with your IP? [y/N]: ").lower() if choice in ["yes", "ye", "y"]: pass elif choice in ["no", "n"]: print("\nProcessing has been aborted.") sys.exit() params = { "action": "query", "meta": "tokens", "format": "json" } CSRF_TOKEN = S.get(url=URL, params=params).json()[ "query"]["tokens"]["csrftoken"] params = { "action": "edit", "title": "麻薬:データ", "section": 1, "text": wText, "summary": "利用者別バイト数データを更新", "bot": True, "token": CSRF_TOKEN, "format": "json" } print("\n" + str(S.post(URL, data=params).json())) </pre>}} == 公序プレイヤー == [[Sisters:WikiWikiリファレンス/公序ソング]]に掲載されている音声ファイル群を VLC media player でランダム再生します。 {| class="wikitable" ! 形式 | Python ファイル (.py) |- ! 要件 | [[#Python|Python]] および [[#Python-VLC|Python-VLC]] ライブラリのインストール、ならびに [https://www.videolan.org/vlc/ VLC media player] のインストール |} {{格納|名前='''ソースコード'''|中身= <pre> import time import random import rich import vlc def playASong(path, length): vlcInstance = vlc.Instance() media = vlcInstance.media_new(path) p = vlcInstance.media_player_new() p.set_media(media) p.play() time.sleep(length + 1) songsArr = [ ("白人唾棄之歌", "芯", 33, "transcoded/e/e7/%E7%99%BD%E4%BA%BA%E5%94%BE%E6%A3%84%E4%B9%8B%E6%AD%8C.mp3/%E7%99%BD%E4%BA%BA%E5%94%BE%E6%A3%84%E4%B9%8B%E6%AD%8C.mp3.ogg"), ("白人唾棄之歌 (知声版)", "芯", 36, "transcoded/f/f9/%E7%99%BD%E4%BA%BA%E5%94%BE%E6%A3%84%E4%B9%8B%E6%AD%8CBy%E7%9F%A5%E5%A3%B0.mp3/%E7%99%BD%E4%BA%BA%E5%94%BE%E6%A3%84%E4%B9%8B%E6%AD%8CBy%E7%9F%A5%E5%A3%B0.mp3.m4a"), ("White Men", "Shin", 33, "transcoded/5/50/White_Men.mp3/White_Men.mp3.ogg"), ("ヒップホップ老害貶し", "キュアラプラプ", 29, "transcoded/3/3a/%E3%83%92%E3%83%83%E3%83%97%E3%83%9B%E3%83%83%E3%83%97%E8%80%81%E5%AE%B3%E8%B2%B6%E3%81%97.mp3/%E3%83%92%E3%83%83%E3%83%97%E3%83%9B%E3%83%83%E3%83%97%E8%80%81%E5%AE%B3%E8%B2%B6%E3%81%97.mp3.m4a"), ("Homeless", "芯", 9, "transcoded/9/9d/Homeless.mp3/Homeless.mp3.m4a"), ("死神の導き", "芯", 57, "transcoded/9/96/%E6%AD%BB%E7%A5%9E%E3%81%AE%E5%B0%8E%E3%81%8D.mp3/%E6%AD%BB%E7%A5%9E%E3%81%AE%E5%B0%8E%E3%81%8D.mp3.ogg"), ("死神の導き (知声版)", "芯", 60, "transcoded/2/2d/%E6%AD%BB%E7%A5%9E%E3%81%AE%E5%B0%8E%E3%81%8DBy%E7%9F%A5%E5%A3%B0.mp3/%E6%AD%BB%E7%A5%9E%E3%81%AE%E5%B0%8E%E3%81%8DBy%E7%9F%A5%E5%A3%B0.mp3.m4a"), ("障害者に捧げるエチュード", "Notorious", 61, "transcoded/e/ec/%E9%9A%9C%E5%AE%B3%E8%80%85%E3%81%AB%E6%8D%A7%E3%81%92%E3%82%8B%E3%82%A8%E3%83%81%E3%83%A5%E3%83%BC%E3%83%89.mp3/%E9%9A%9C%E5%AE%B3%E8%80%85%E3%81%AB%E6%8D%A7%E3%81%92%E3%82%8B%E3%82%A8%E3%83%81%E3%83%A5%E3%83%BC%E3%83%89.mp3.ogg"), ("ハミング・ザ・アメ公序", "キュアラプラプ", 108, "transcoded/0/01/%E3%83%8F%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%B6%E3%83%BB%E3%82%A2%E3%83%A1%E5%85%AC%E5%BA%8F.mp3/%E3%83%8F%E3%83%9F%E3%83%B3%E3%82%B0%E3%83%BB%E3%82%B6%E3%83%BB%E3%82%A2%E3%83%A1%E5%85%AC%E5%BA%8F.mp3.ogg"), ("白昼のクレイジィ", "キュアラプラプ", 27, "transcoded/f/f3/%E7%99%BD%E6%98%BC%E3%81%AE%E3%82%AF%E3%83%AC%E3%82%A4%E3%82%B8%E3%82%A3.mp3/%E7%99%BD%E6%98%BC%E3%81%AE%E3%82%AF%E3%83%AC%E3%82%A4%E3%82%B8%E3%82%A3.mp3.m4a"), ("フラッシュバックナイトメアー", "キュアラプラプ", 56, "transcoded/3/31/%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%90%E3%83%83%E3%82%AF%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%83%BC.mp3/%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%83%90%E3%83%83%E3%82%AF%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%83%BC.mp3.m4a"), ("FOOL JAPAN", "キュアラプラプ", 142, "transcoded/a/a3/FOOL_JAPAN.mp3/FOOL_JAPAN.mp3.m4a"), ("MidNight&FatWhite", "キュアラプラプ", 135, "transcoded/a/ab/MidNight%26FatWhite.mp3/MidNight%26FatWhite.mp3.m4a"), ("ジェンダー讃歌", "Notorious", 85, "transcoded/d/d8/%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%80%E3%83%BC%E8%AE%83%E6%AD%8C.mp3/%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%80%E3%83%BC%E8%AE%83%E6%AD%8C.mp3.m4a"), ("ばいばい", "キュアラプラプ", 211, "transcoded/9/98/%E3%81%B0%E3%81%84%E3%81%B0%E3%81%84.mp3/%E3%81%B0%E3%81%84%E3%81%B0%E3%81%84.mp3.m4a"), ("小売店民謡", "ケツアゴコロロ", 12, "4/45/%E5%B0%8F%E5%A3%B2%E5%BA%97%E6%B0%91%E8%AC%A1.mp3"), ("或る女が死ぬ間際に聞いた.mp3", "利用者:ケツアゴコロロ", 44, "transcoded/e/e9/%E6%88%96%E3%82%8B%E5%A5%B3%E3%81%8C%E6%AD%BB%E3%81%AC%E9%96%93%E9%9A%9B%E3%81%AB%E8%81%9E%E3%81%84%E3%81%9F.mp3.mp3/%E6%88%96%E3%82%8B%E5%A5%B3%E3%81%8C%E6%AD%BB%E3%81%AC%E9%96%93%E9%9A%9B%E3%81%AB%E8%81%9E%E3%81%84%E3%81%9F.mp3.mp3.ogg"), ("Y-Genocide", "キュアラプラプ", 106, "transcoded/b/b6/Y-Genocide.mp3/Y-Genocide.mp3.m4a"), ("ロートモーダ=オーレ", "キュアラプラプ", 74, "transcoded/2/2b/%E3%83%AD%E3%83%BC%E3%83%88%E3%83%A2%E3%83%BC%E3%83%80%3D%E3%82%AA%E3%83%BC%E3%83%AC.mp3/%E3%83%AD%E3%83%BC%E3%83%88%E3%83%A2%E3%83%BC%E3%83%80%3D%E3%82%AA%E3%83%BC%E3%83%AC.mp3.m4a"), ("グッドナイト", "キュアラプラプ", 108, "transcoded/1/17/%E3%82%B0%E3%83%83%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88.mp3/%E3%82%B0%E3%83%83%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88.mp3.m4a"), ("Wi-Fiエレジー", "Notorious", 72, "transcoded/2/2a/Wi-Fi%E3%82%A8%E3%83%AC%E3%82%B8%E3%83%BC.mp3/Wi-Fi%E3%82%A8%E3%83%AC%E3%82%B8%E3%83%BC.mp3.ogg"), ("ワンオペ・ファイヤー", "芯", 25, "transcoded/6/64/%E3%83%AF%E3%83%B3%E3%82%AA%E3%83%9A%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%A4%E3%83%BC.mp3/%E3%83%AF%E3%83%B3%E3%82%AA%E3%83%9A%E3%83%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%A4%E3%83%BC.mp3.m4a"), ("栃木県・40代・無職", "芯", 9, "transcoded/a/ac/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E4%BB%A3%E3%83%BB%E7%84%A1%E8%81%B7.mp3/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E4%BB%A3%E3%83%BB%E7%84%A1%E8%81%B7.mp3.ogg"), ("栃木県・40代・無職 (知声版)", "芯", 12, "transcoded/c/c4/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E4%BB%A3%E3%83%BB%E7%84%A1%E8%81%B7By%E7%9F%A5%E5%A3%B0.mp3/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E4%BB%A3%E3%83%BB%E7%84%A1%E8%81%B7By%E7%9F%A5%E5%A3%B0.mp3.m4a"), ("ワンクリックボーイ", "キュアラプラプ", 175, "transcoded/a/a7/%E3%83%AF%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%82%A4.mp3/%E3%83%AF%E3%83%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%82%A4.mp3.m4a"), ("アンサー:近頃の若えモンは", "キュアラプラプ", 80, "transcoded/b/b9/%E3%82%A2%E3%83%B3%E3%82%B5%E3%83%BC%EF%BC%9A%E8%BF%91%E9%A0%83%E3%81%AE%E8%8B%A5%E3%81%88%E3%83%A2%E3%83%B3%E3%81%AF.mp3/%E3%82%A2%E3%83%B3%E3%82%B5%E3%83%BC%EF%BC%9A%E8%BF%91%E9%A0%83%E3%81%AE%E8%8B%A5%E3%81%88%E3%83%A2%E3%83%B3%E3%81%AF.mp3.m4a"), ("大人なのに書けん", "芯", 74, "transcoded/c/c8/%E5%A4%A7%E4%BA%BA%E3%81%AA%E3%81%AE%E3%81%AB%E6%9B%B8%E3%81%91%E3%82%93.mp3/%E5%A4%A7%E4%BA%BA%E3%81%AA%E3%81%AE%E3%81%AB%E6%9B%B8%E3%81%91%E3%82%93.mp3.ogg"), ("大人なのに書けん (知声版)", "芯", 77, "transcoded/6/68/%E5%A4%A7%E4%BA%BA%E3%81%AA%E3%81%AE%E3%81%AB%E6%9B%B8%E3%81%91%E3%82%93By%E7%9F%A5%E5%A3%B0.mp3/%E5%A4%A7%E4%BA%BA%E3%81%AA%E3%81%AE%E3%81%AB%E6%9B%B8%E3%81%91%E3%82%93By%E7%9F%A5%E5%A3%B0.mp3.ogg"), ("部落サンタ", "キュアラプラプ", 97, "transcoded/4/40/%E9%83%A8%E8%90%BD%E3%82%B5%E3%83%B3%E3%82%BF.mp3/%E9%83%A8%E8%90%BD%E3%82%B5%E3%83%B3%E3%82%BF.mp3.ogg"), ("介護医療院の実習生", "芯", 70, "transcoded/d/d4/%E4%BB%8B%E8%AD%B7%E5%8C%BB%E7%99%82%E9%99%A2%E3%81%AE%E5%AE%9F%E7%BF%92%E7%94%9F.mp3/%E4%BB%8B%E8%AD%B7%E5%8C%BB%E7%99%82%E9%99%A2%E3%81%AE%E5%AE%9F%E7%BF%92%E7%94%9F.mp3.ogg"), ("5Gがやってくる", "キュアラプラプ", 219, "transcoded/a/a7/5G%E3%81%8C%E3%82%84%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B.mp3/5G%E3%81%8C%E3%82%84%E3%81%A3%E3%81%A6%E3%81%8F%E3%82%8B.mp3.ogg"), ("労働哀歌", "芯", 126, "transcoded/8/87/%E5%8A%B4%E5%83%8D%E5%93%80%E6%AD%8C.mp3/%E5%8A%B4%E5%83%8D%E5%93%80%E6%AD%8C.mp3.ogg"), ("労働哀歌 (知声版)", "芯", 127, "transcoded/a/ab/%E5%8A%B4%E5%83%8D%E5%93%80%E6%AD%8CBy%E7%9F%A5%E5%A3%B0.mp3/%E5%8A%B4%E5%83%8D%E5%93%80%E6%AD%8CBy%E7%9F%A5%E5%A3%B0.mp3.ogg"), ("ふるさと", "芯", 245, "transcoded/7/72/%E3%81%B5%E3%82%8B%E3%81%95%E3%81%A8.mp3/%E3%81%B5%E3%82%8B%E3%81%95%E3%81%A8.mp3.ogg"), ("ふるさと (知声版)", "芯", 242, "transcoded/b/ba/%E3%81%B5%E3%82%8B%E3%81%95%E3%81%A8By%E7%9F%A5%E5%A3%B0.mp3/%E3%81%B5%E3%82%8B%E3%81%95%E3%81%A8By%E7%9F%A5%E5%A3%B0.mp3.ogg"), ("White House Remix", "キュアラプラプ", 233, "d/dd/White_House_Remix.mp3"), ("かよわきハニー", "芯", 82, "transcoded/7/77/%E3%81%8B%E3%82%88%E3%82%8F%E3%81%8D%E3%83%8F%E3%83%8B%E3%83%BC.mp3/%E3%81%8B%E3%82%88%E3%82%8F%E3%81%8D%E3%83%8F%E3%83%8B%E3%83%BC.mp3.ogg"), ("かよわきハニー (知声版)", "芯", 82, "transcoded/3/36/%E3%81%8B%E3%82%88%E3%82%8F%E3%81%8D%E3%83%8F%E3%83%8B%E3%83%BCBy%E7%9F%A5%E5%A3%B0.mp3/%E3%81%8B%E3%82%88%E3%82%8F%E3%81%8D%E3%83%8F%E3%83%8B%E3%83%BCBy%E7%9F%A5%E5%A3%B0.mp3.ogg"), ("栃木県・40名・死傷", "キュアラプラプ", 150, "transcoded/8/8a/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E5%90%8D%E3%83%BB%E6%AD%BB%E5%82%B7.mp3/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB40%E5%90%8D%E3%83%BB%E6%AD%BB%E5%82%B7.mp3.m4a"), ("He Died So Young", "Shin", 109, "transcoded/1/14/He_Died_So_Young.mp3/He_Died_So_Young.mp3.ogg"), ("栃木県・50代・カメラマン", "芯", 26, "transcoded/f/f5/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB50%E4%BB%A3%E3%83%BB%E3%82%AB%E3%83%A1%E3%83%A9%E3%83%9E%E3%83%B3.mp3/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB50%E4%BB%A3%E3%83%BB%E3%82%AB%E3%83%A1%E3%83%A9%E3%83%9E%E3%83%B3.mp3.ogg"), ("栃木県・50代・カメラマン (知声版)", "芯", 26, "9/95/%E6%A0%83%E6%9C%A8%E7%9C%8C%E3%83%BB50%E4%BB%A3%E3%83%BB%E3%82%AB%E3%83%A1%E3%83%A9%E3%83%9E%E3%83%B3By%E7%9F%A5%E5%A3%B0.mp3") ] while True: trgtSong = random.choice(songsArr) rich.print("\r[bright_cyan]" + trgtSong[0] + "[/bright_cyan]" + " [white]--[/white] " + "[bright_green]" + trgtSong[1] + "[/bright_green]", end="") playASong("https://ja.wikiwiki.li/images/" + trgtSong[3], trgtSong[2]) </pre>}} == 覚え書き == === インストールについて === ==== Python ==== [https://www.python.org/downloads/ 公式のダウンロード・ページ]にアクセスし、'''"Download Python"''' とあるボタンをクリックしてください。ダウンロードされたファイルを開くとインストーラーが起動するので、その指示に従うことでインストールを完了できます。 ===== 各種ライブラリ ===== Python の各種ライブラリは、[[#Python|Python]] 本体を OS にインストールしたのちに、それぞれ以下の操作を行うことでインストールできます。 *<span id="Requests">'''Requests'''</span> - コマンドプロンプトで <code>pip install requests</code> を実行する *<span id="Python-VLC">'''Python-VLC'''</span> - コマンドプロンプトで <code>pip install python-vlc</code> を実行する
編集内容の要約:
WikiWikiへの投稿はすべて、クリエイティブ・コモンズ・ゼロ(パブリックドメイン) (詳細は
WikiWiki:著作権
を参照)のもとで公開したと見なされることにご注意ください。 自分が書いたものが他の人に容赦なく編集され、自由に配布されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください。
著作権保護されている作品は、許諾なしに投稿しないでください!
編集を中止
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:格納
(
編集
)
案内メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
利用者ページ
議論
日本語
表示
閲覧
編集
ソースを編集
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
ツール
リンク元
関連ページの更新状況
利用者の投稿記録
ログ
利用者グループの表示
特別ページ
ページ情報