利用者:Bcxfubot/youtube/prog
表示
< 利用者:Bcxfubot | youtube
# URL張替
# http://jp.youtube.com/
# ↓
# https://www.youtube.com/
import re
import time
import pywikibot
#target = "http://ameblo.jp/"
target = "[http://jp.youtube.com/"
target_https = "[https://www.youtube.com/"
#max = 10
#max = 10
max = 1
sleepsec = 60
######################################################
# テストモード
testmode = 0
#testmode = 1
######################################################
def replace_page(pagetitle):
site = pywikibot.Site()
#page = pywikibot.Page(site, u"利用者:Bcxfu75k")
#page = pywikibot.Page(site, u"利用者:Bcxfu75k/bottest")
page = pywikibot.Page(site, pagetitle)
#text = page.text
#print(text)
linelist = page.text.split('\n')
#print(linelist)
gaibu = 0
modflag = 0
outtext = ""
for line in linelist:
#print(gaibu,line)
#if "==外部リンク" in line:
#if re.search("==[ ]*外部リンク",line):
# gaibu = 1
#if gaibu == 1:
if target in line:
#print(gaibu,line)
line = line.replace( target, target_https)
print(gaibu,line)
modflag = 1
outtext += line + "\n"
if modflag == 1:
page.text = outtext
#page.save(u"ボットによる編集テスト [[:利用者:Bcxfubot]] 外部リンクの修正 https://ameblo.jp/")
if testmode == 0:
page.save("外部リンクの修正 " + target_https + " ([[Wikipedia:Bot|Bot]]による編集)")
# 処理対象のページ名をひとつ返す
# 処理対象がない場合は""を返す
def get_pagetitle():
path = "list"
with open(path) as f:
for s_line in f:
s_line = s_line.rstrip("\n")
#print(s_line)
#if not re.search(",sumi", s_line):
if not s_line.endswith(",sumi"):
return s_line
return ""
# 処理した行にsumiをつける
def done_pagetitle(pagetitle):
path = "list"
alltext = ""
with open(path) as f:
for s_line in f:
s_line = s_line.rstrip("\n")
#print(s_line + "\n")
#if re.search(pagetitle, s_line):
if pagetitle == s_line:
s_line = s_line + ",sumi"
alltext += s_line + "\n"
with open(path, mode='w') as f:
f.write(alltext)
return ""
def sub():
for i in range(max):
pagetitle = get_pagetitle()
print("pagetitle=" + pagetitle)
if pagetitle == "":
break
replace_page(pagetitle)
done_pagetitle(pagetitle)
if ( i < (max - 1) ):
print("sleep(" + str(sleepsec) + ")")
time.sleep(sleepsec)
def main():
sub()
print("done.")
if __name__ == '__main__':
main()