"""
Python 3.8.0
检查是否有页面标题包含指定字符串却没有被收录
大约耗时1分钟

Jan 7, 2020
Jan 15, 2020
Jan 17, 2020
Hu Xiangyou
"""
print(__file__.rsplit("\\",1)[1])
print(__doc__)
import requests
from urllib import parse
import time
import openpyxl
import second2days

filepath="PAGELIST.xlsx"

url="https://zh.moegirl.org/api.php"

params={'action':'query','format':'json','list':'prefixsearch','pslimit':500,'psnamespace':'*','pssearch':''}

Workbook:type=openpyxl.workbook.workbook.Workbook
Worksheet:type=openpyxl.worksheet.worksheet.Worksheet
Cell:type=openpyxl.cell.cell.Cell

b:Workbook=openpyxl.load_workbook(filepath)
sMain:Worksheet=b.worksheets[0]
sTemp:Worksheet=b.worksheets[1]
sCate:Worksheet=b.worksheets[2]
sheets:Worksheet=b.worksheets

n_all=0
n_new=0

def isResponceOK(json:dict)->bool:
	if 'batchcomplete' in json:
		return True
	else:
		print("Responce is not complete.")
		return False

input("Enter to start.")
start_time=time.time()
print("started at",time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(start_time)))

prefixlist=[
'"MY LIST" to you',
'MY LIST to you',
'これまでのラブライブ',
'乙姫心で恋宮殿',
'地元愛',
'小夜啼鳥恋詩',
'A ZU NA',
'A song for You! You? You',
'A-RISE',
'AQOURS',
'AS',
'AZALEA',
'After school NAVIGATORS',
'Aji人',
'Amazing Travel DNA',
'Anemone heart',
'Angelic Angel',
'Aqours CLUB CD SET',
'Aqours HEROES',
'Aqours☆HEROES',
'As Time Goes By',
'Audrey',
'Awaken the power',
'A·ZU·NA',
'BIBI',
'Baby maybe 恋爱的按钮',
'Beat in Angel',
'Beautiful Moonlight',
"Beginner's Sailing",
'Beginner’s Sailing',
'Believe again',
'BiBi',
'Blueberry Train',
'Braveheart Coaster',
'Brightest Melody',
'CHANGELESS',
'CHASE',
'COLORFUL VOICE',
'CRASH MIND',
'CYARON',
'CYaRon',
'Cheer for you',
'CheerDay CheerGirl',
'Cutie Panther',
'DIVERDIVA',
'DROPOUT',
'Dance with Minotaurus',
'Dancing stars on me',
'Daring',
'Daydream Warrior',
'Deep Resonance',
'Diamond',
'Diamond Princess的忧郁',
'DiverDiva',
'Doki Pipo Emotion',
'Dream Land！Dream World',
"Dreamin' Go! Go!!",
'ENDLESS PARADE',
'Endless Love',
'Evergreen',
'Future style',
'GALAXY HidE and SeeK',
'GUILTY KISS',
'Guilty Kiss',
'Guilty',
'G弦上的灰姑娘',
'G線上のシンデレラ',
'HAPPY PARTY TRAIN',
'HEART to HEART',
'HEARTBEAT',
'Happy maker',
'Hello,星を数えて',
'Hello,细数繁星',
'Hop Step Wai',
'Hop? Stop? Nonstop',
'Humming Friend',
"I'll smile for yours",
'I-n-g, I TRY',
'INNOCENT BIRD',
'In this unstable world',
'Journey to the Sunshine',
'Jump up HIGH',
'KOKORO Magic',
'KiRa-KiRa Sensation',
'LILY WHITE',
'LL',
'LLAS Card',
'LLSIF',
'LLSS',
'LL神教',
'LONELIEST BABY',
'LONELY TUNING',
'LOVE LIVE',
'LOVELESS WORLD',
'LOVELIVE',
'Landing action Yeah',
'Lily white',
'Listen to my heart',
'Love Live',
'Love Novels',
'Love Pulsar',
'Love Triangle',
'Love U my friends',
'Love marginal',
'Love wing bell',
'LoveEcho中翻组',
'LoveLive',
'LoveLiver',
'LoveLi',
'MELODY',
'MIRACLE WAVE',
'MIRAI TICKET',
'MOMENT RING',
'MUSEUMでどうしたい',
'MY舞 TONIGHT',
'MY舞☆TONIGHT',
'Marine Border Parasol',
'Memorial BOX',
'Mermaid festa',
'Music S.T.A.R.T',
'My Own Fairy-Tale',
'M是μ’sic的M',
'NEURON, NEURON',
'NEURON,NEURON',
'NIJIGAKU',
'NIJIGASAKI',
'NO EXIT ORION',
'New Romantic Sailors',
'New winding road',
'Next SPARKLING',
'NicoNicoNi',
'No brand girls',
'No.10',
'Notes of School',
'Oh,Love&Peace',
'One More Sunshine Story',
'Over The Next Rainbow',
'P.S.の向こう側',
'P.S.的另一侧',
'PDP',
'PRINTEMPS',
'PSYCHIC FIRE',
'Paradise Live',
'Phantom Rocket Adventure',
'Pianoforte Monologue',
'Pile',
'Pops heartで踊るんだもん',
'Printemps',
'Private Wars',
'Puchiguru',
'Pure girls project',
'QU4RTZ',
'RED GEM WINK',
'SCHOOL IDOL',
'SELF CONTROL',
'SENTIMENTAL StepS',
'SIF',
'SKY JOURNEY',
'START:DASH',
'SUMMER VACATION',
'SUNNY DAY SONG',
'SUPER NOVA',
'Sailing to the Rainbow',
'Sailing to the Sunshine',
'Saint Snow',
'Shadow gate to love',
'Shangri-La Shower',
'Shocking Party',
'Silent tonight',
'Sing & Smile',
'Snow halation',
'Soldier game',
'Someday of my life',
'Spica Terrible',
'Starlight',
'Stars, Come to me',
'Step! ZERO to ONE',
'Storm in Lover',
'Strawberry Trapper',
'Sunshine熠熠生辉之歌',
'Super LOVE=Super LIVE',
'Sweet&sweet holiday',
'TOKIMEKI Runners',
'Tele-telepathy',
'Thank you, FRIENDS',
'Thrilling One-way',
'Trouble Busters',
'UNBALANCED LOVE',
'WAO-WAO Powerful day',
'WATER BLUE NEW WORLD',
'WHITE FIRST LOVE',
'WILD STARS',
'WONDERFUL STORIES',
'Wake up, Challenger',
'Waku-Waku-Week',
'Wish',
'Wonder zone',
'Wonderful Rush',
'Wonderland',
'a zu na',
'after school NAVIGATORS',
'aqours',
'azalea',
'baby maybe 恋のボタン',
'bd',
'bibi',
'card',
'cardnormal',
'cyaron',
'diverdiva',
'guilty kiss',
'i-n-g, I TRY',
'icon1',
'icon2',
'in this unstable world',
'lily white',
'll',
'llas',
'llss',
'love live',
'lovelive',
'nijigaku',
'nijigasaki',
'pdp',
'printemps',
'qu4rtz',
'quest building',
'quest exchange',
'saint snow',
'school idol',
'secretbox',
'sid',
'sif',
'soldier game',
'sweet&sweet holiday',
'u normal',
'u rankup',
'“MY LIST” to you',
'☆ワンダーランド☆',
'ワンダーランド',
'あなたの理想のヒロイン',
'ありふれた悲しみの果て',
'あ・の・ね・が・ん・ば・れ',
'あのねがんばれ',
'おとひめはーとでらぶきゅうでん"',
'おやすみなさん',
'きっと青春が聞こえる',
'くるりんMIRACLE',
'ここで待ってるよ',
'これから',
'これからのSomeday',
'さかなかなんだか',
'さようならへさよなら',
'ずるいよMagnetic today',
'そして最後のページには',
'それは僕たちの奇跡',
'だってだって噫無情',
'ときめき分類学',
'どんなときもずっと',
'なわとび',
'にこぷり♡女子道',
'ふたりハピネス',
'ぶる～べりぃ♡とれいん',
'ぷわぷわーお',
'まほうつかいはじめました',
'めっちゃGoing',
'もうひとりじゃないよ',
'もぎゅっと',
'もしもからきっと',
'るてしキスキしてる',
'エマ・ヴェルデ',
'オードリー',
'キセキヒカル',
'キミのくせに',
'コドクの回廊',
'コドク・テレポート',
'コワレヤスキ',
'サクラバイバイ',
'サンシャインぴっかぴか音頭',
'シアワセ行きのSMILING',
'ジモアイまんタンサマーライフ"',
'ジングルベルがとまらない',
'スクフェス',
'ススメ→トゥモロウ',
'スピカテリブル',
'スリリング・ワンウェイ',
'タカラモノズ',
'ダイアモンド',
'ダイスキだったらダイジョウブ',
'ダイヤモンドプリンセスの憂鬱',
'テレテレパシー',
'トリコリコPLEASE',
'ドキピポ☆エモーション',
'ナイチンゲールラブソング"',
'ハジマリロード',
'ハミングフレンド',
'ホップ・ステップ・ワーイ',
'ホップステップワーイ',
"ミはμ'sicのミ",
'メイズセカイ',
'ユメノトビラ',
'ユメ語るよりユメ歌おう',
'ラブノベルス',
'ラブライブ',
'一之濑茉莉花',
'一定能听见青春',
'三森すずこ',
'三船栞子',
'上原步梦',
'上原歩夢',
'下园咲',
'下定决心Hand in Hand',
'不久将来的Happy End',
'不可能预测Driving',
'不成熟的DREAMER',
'不知道的Love',
'与其诉说梦想',
'东条希',
'两个人的Happiness',
'中須かすみ',
'中须霞',
'为了保护我们心爱',
'久保ユリカ',
'久保田未夢',
'久保田未梦',
'乙女式れんあい塾',
'乙女式恋爱塾',
'乙姬心恋宫殿',
'九条圣来',
'予測不可能Driving',
'从今以后',
'从今以后的Someday',
'伊波杏树',
'伊波杏樹',
'伊莎贝拉',
'优木杏树',
'优木雪菜',
'佐伯丽音',
'佐藤日向',
'你不再是孤单一人了哦',
'你理想的女主角',
'你的心灵是否光芒闪耀',
'你着欢喜我喜欢着你',
'你逢田姐当然会oo呀',
'僕たちはひとつの光',
'僕らのLIVE 君とのLIFE',
'僕らの走ってきた道は…',
'僕らは今のなかで',
'優木せつ菜',
'元气全开DAY!DAY!DAY',
'元気全開DAY',
'克里斯蒂娜',
'兰花',
'兵藤小百合',
'内田彩',
'再会了再见',
'冒险Type A, B, C',
'冒険Type A, B, C',
'冬がくれた予感',
'冬天给予的预感',
'出道风云',
'前田佳織里',
'前田佳织里',
'前进Tomorrow',
'勇气在哪？在你的内心',
'勇气的Reason',
'勇気のReason',
'勇気はどこに？君の胸に',
'千歌的母亲',
'卒業ですね',
'南ことり',
'南小鸟',
'南日和子',
'南條愛乃',
'友 & 愛',
'友 & 爱',
'友情No Change',
'友情ノーチェンジ',
'可爱妮可的女子之道',
'吉川瑞希',
'同じ星が見たい',
'向夏天的门 Never end ver.',
'向幸福前行的SMILING',
'向着梦想的一步',
'君のこころは輝いてるかい',
'君の瞳を巡る冒険',
'告白日和、です',
'告白日和',
'哪怕是望尘莫及的繁星',
'因为要在Pops heart间舞蹈',
'园田海未',
'国木田花丸',
'国立音乃木坂学院',
'園田海未',
'圣日的祈祷',
'圣良',
'在这里等待',
'坂卷千鹤子',
'声繋ごうよ',
'声音连接起来吧',
'夏、終わらないで。',
'夏の終わりの雨音が',
'夏への扉 Never end ver.',
'夏天结束的雨声',
'夏天，请不要结束。',
'夏色えがおで1、2、Jump',
'夏色笑颜1,2,Jump',
'多多良瑠羽',
'夜空はなんでも知ってるの',
'夜空是否全然知晓',
'夢☆ONCE AGAIN',
'夢で夜空を照らしたい',
'夢なき夢は夢じゃない',
'夢への一歩',
'大家一起Score Match',
'大家晚安',
'大西亚玖璃',
'大西亜玖璃',
'天使们的福音',
'天王寺璃奈',
'天空与心灵皆能雨过天晴',
'太陽を追いかけろ',
'奇迹闪耀',
'女性歌手',
'好きですが好きですか',
'好狡猾哟Magnetic today',
'如今的我们',
'如果从那时一定',
'如果奇迹有颜色，那一定是橙色',
'孤独Teleport',
'孤独なHeaven',
'孤独的Heaven',
'孤独的回廊',
'学园偶像',
'宝物',
'宫下爱',
'宫下香',
'宮下愛',
'家乡之爱满满夏日时光',
'寻常悲伤的尽头',
'小原鞠莉',
'小夜啼鸟恋诗',
'小宫有纱',
'小宮有紗',
'小林愛香',
'小林爱香',
'小泉花阳',
'小泉花陽',
"小鸟Lovin' you",
'少女以上の恋がしたい',
'届かない星だとしても',
'山内奈奈子',
'山田博子',
'嵐のなかの恋だから',
'开花宣言',
'彼方',
'待ってて愛のうた',
'御堂优理',
'微熱からMystery',
'徳井青空',
'志贺仁美',
'思い出以上になりたくて',
'思念合而为一吧',
'恋になりたい',
'恋のシグナル',
'恋爱的信号',
'悸动分类学',
'想いよひとつになれ',
'想去沉睡的森林啊',
'想在AQUARIUM恋爱',
'想在MUSEUM做什么',
'想成为回忆以上的存在',
'想用梦照亮夜空',
'想看见同一颗星',
'想谈少女以上的恋爱',
'愛してるばんざーい',
'愛は太陽じゃない',
'成为如此忧美的日子',
'我们奔跑而来的道路…',
'我们是合而为一的光芒',
'我们是未来之花',
'我们的LIVE 与你的LIFE',
'我和希相处的一天',
'我喜欢你你喜欢我吗',
'我在海岸大街等着你哦',
'我开始做魔法使了',
'所以说请加油吧',
'抢镜脸',
'拉克夏达',
'指出毬亚',
'指出毬亜',
'支仓笠音',
'文香',
'斉藤朱夏',
'斯くも憂美な日となりて',
'新田恵海',
'无法停止的Jingle Bell',
'无论何时一直',
'早乙女紫',
'明明只是你',
'星空凛',
'春情Romantic',
'春情ロマンティック',
'是鱼还是果南',
'最低で最高のParadiso',
'最喜欢的话就没问题',
'最坏又最好的PARADISO',
'月岛结架',
'朝香果林',
'未体験HORIZON',
'未体验HORIZON',
'未来の僕らは知ってるよ',
'未来的我们早已知晓',
'未熟DREAMER',
'杉崎亚矢',
'村上奈津实',
'村上奈津実',
'来自微热的Mystery',
'東條希',
'松浦果南',
'果林',
'桐原优香',
'桜内梨子',
'桜坂しずく',
'梦ONCE AGAIN',
'梦想之门',
'梨子的母亲',
'森岛奈奈香',
'楠木ともり',
'楠木灯',
'楠田亜衣奈',
'樱之雨',
'樱内梨子',
'樱坂雫',
'樱花再见',
'欲于辉夜之城起舞',
'正因为是太无情',
'正因为是暴风雨中的爱恋',
'步梦',
'毕业了呢',
'永山南',
'永远Friends',
'永遠フレンズ',
'決めたよHand in Hand',
'没有梦想的梦想不是梦想',
'津岛善子',
'津島善子',
'浦之星女子学院',
'海岸通りで待ってるよ',
'海色少女令人着迷',
'淡淡的穗乃果色',
'深井冰配音版LoveLive',
'深山聪子',
'渡边曜',
'渡边月',
'渡辺曜',
'满怀“love”接近中',
'然后是最后一页',
'爱上你万岁',
'爱不是太阳吗',
'特别Going',
'玛利亚',
'环游在你眼瞳中的冒险',
'玻璃花园',
'珍妮佛',
'理亚',
'琴梨',
'璃奈',
'田中ちえ美',
'田中千惠美',
'田中幸子',
'田野アサミ',
'田野麻美',
'白木凪',
'白濑小雪',
'盛夏为谁所拥有',
'相川凉',
'相良茉优',
'相良茉優',
'真夏は誰のモノ',
'眠れる森に行きたいな',
'矢泽妮可',
'矢泽心',
'矢泽心爱',
'矢泽笑美',
'矢泽虎太郎',
'矢澤にこ',
'知らないLove',
'硝子の花園',
'神谷理华',
'福原命',
'秀子',
'私たちは未来の花',
'秋のあなたの空遠く',
'秋叶原记者',
'秋日彼端的遥远天空',
'秘密と花園',
'秘密与花园',
'空も心も晴れるから',
'空中恋愛論',
'空中恋爱论',
'笹原京子',
'等待我的恋爱之歌',
'篠宫明瑠',
'純愛レンズ',
'紫藤美咲',
'絢瀬絵里',
'纯爱镜头',
'结城纱菜',
'绚濑亚里沙',
'绚濑绘里',
'统堂英玲奈',
'绫小路姬乃',
'绮罗翼',
'美佳',
'羽は知ってしまったの',
'羽毛知道了',
'聖なる日の祈り',
'脆弱易碎',
'艾玛',
'艾玛·维尔德',
'菊池朱美',
'蕾欧',
'蕾贝卡',
'藤城悠弓',
'虹ヶ咲',
'虹咲',
'虹咲学园',
'西木野瑞妃',
'西木野真姫',
'西木野真姬',
'西村文绘',
'諏訪ななか',
'让我俘虏你的心PLEASE',
'设乐风海',
'诹访奈奈香',
'起始之路',
'跳绳',
'輝夜の城で踊りたい',
'转转凛MIRACLE',
'软绵绵的哦',
'迄今为止的LoveLive',
'近未来ハッピーエンド',
'近江彼方',
'近江遥',
'迷宫世界',
'追赶太阳吧',
'逃离迷途莫比乌斯环',
'逃走迷走メビウスループ',
'逢泽游宇',
'逢田梨香子',
'那就是我们的奇迹',
'鈴木愛奈',
'錯覚CROSSROADS',
'铃木爱奈',
'错觉CROSSROADS',
'閃光Resolution',
'開花宣言',
'门田剑',
'闪光Resolution',
'降幡愛',
'降幡爱',
'雪菜',
'青空Jumping Heart',
'革命ですね？神様',
'革命吗？神明大人',
'须田伊瑠香',
'飯田里穂',
'高坂穂乃果',
'高坂穗乃果',
'高坂穗乃果的父亲',
'高坂绢穗',
'高坂雪穗',
'高天原睦月',
'高槻かなこ',
'高槻加奈子',
'高海千歌',
'高海志满',
'高海美渡',
'鬼头明里',
'鬼崎晶',
'鬼頭明里',
'鸟居步美',
'鹿角圣良',
'鹿角理亚',
'鹿角理亞',
'鹿角聖良',
'黑崎隼',
'黑泽露比',
'黑泽黛雅',
'黑羽咲夜',
'黑羽咲良',
'黒澤ダイヤ',
'黒澤ルビィ',
'齐木风',
'齐藤朱夏',
'？←HEARTBEAT',
]

pagetitlelist:list=[]
for sheet in sheets:
	pagetitlelist+=[c.value for c in list(sheet.columns)[3]]
	for c in list(sheet.columns)[5]:
		if c.value:
			pagetitlelist+=list(eval(c.value))
for prefix in prefixlist:
	while True:
		try:
			a=requests.get(url,params={**params,**{'pssearch':prefix}},timeout=(10,30))
		except:
			print(".",end="")
			continue
		else:
			break
	json:dict=a.json()
	if not isResponceOK(json):
		break
	for pageJson in json['query']['prefixsearch']:
		pageid=pageJson['pageid'] if 'pageid' in pageJson else ""
		title=pageJson['title'] if 'title' in pageJson else ""
		if title not in pagetitlelist:
			print("[新]","\t[PID]",pageid,"\t[Title]",title)
			pagetitlelist.append(title)
			n_new+=1
		else:
			#print("-","\t[PID]",pageid,"\t[Title]",title)
			pass


print()
end_time=time.time()
print("ended   at",time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(end_time)))
print(second2days.main(end_time-start_time),"spent.")

print(n_new,"newly found.")

input("Done.")