86 lines
2.4 KiB
Python
86 lines
2.4 KiB
Python
import json
|
|
import urllib2
|
|
import logging
|
|
import re
|
|
|
|
logging.basicConfig(filename='wqb.log', format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', encoding='utf-8', level=logging.DEBUG)
|
|
|
|
sl = urllib2.urlopen(urllib2.Request('https://www.wowhead.com/world-quests/sl/eu', headers={'User-Agent': 'Edg/79.0.309.43'})).read()
|
|
bfa = urllib2.urlopen(urllib2.Request('https://www.wowhead.com/world-quests/bfa/eu', headers={'User-Agent': 'Edg/79.0.309.43'})).read()
|
|
legion = urllib2.urlopen(urllib2.Request('https://www.wowhead.com/world-quests/legion/eu', headers={'User-Agent': 'Edg/79.0.309.43'})).read()
|
|
|
|
config = open('.conf', 'r')
|
|
config = config.readlines()
|
|
|
|
chat_id = config[0].split('=')[1].strip()
|
|
token = config[1].split('=')[1].strip()
|
|
|
|
def send_message(input):
|
|
data = {
|
|
'chat_id': chat_id,
|
|
'parse_mode': "MarkdownV2",
|
|
'disable_web_page_preview': 'true',
|
|
'disable_notification': 'true',
|
|
'text': input
|
|
}
|
|
|
|
req = urllib2.Request('https://api.telegram.org/bot' + token + '/sendMessage')
|
|
req.add_header('Content-Type', 'application/json')
|
|
|
|
response = urllib2.urlopen(req, json.dumps(data))
|
|
|
|
logging.info('sent message ' + input)
|
|
|
|
def get_id(quest):
|
|
sources = {'SL': sl, 'BfA': bfa, 'Legion': legion}
|
|
|
|
for name, src in sources.items():
|
|
if (src.find(quest) != -1):
|
|
rgx = r"\"(\d+)\":{\"name_enus\":\"" + re.escape(quest) + r"\""
|
|
m = re.search(rgx, src)
|
|
if (m):
|
|
return m.group(1), name
|
|
else:
|
|
return 0, name
|
|
|
|
return -1, ''
|
|
|
|
def sanitize(str):
|
|
return str.replace('-', '\\-')
|
|
|
|
qlist = open('ql','r')
|
|
qlist = qlist.readlines()
|
|
output = ''
|
|
|
|
for quest in qlist:
|
|
qsplit = quest.rstrip().split('|')
|
|
id = -1
|
|
tag = ''
|
|
q = ''
|
|
prefix = ''
|
|
suffix = ''
|
|
|
|
if len(qsplit) == 1:
|
|
q = qsplit[0]
|
|
elif len(qsplit) == 2:
|
|
q = qsplit[1]
|
|
prefix = qsplit[0] + " - "
|
|
elif len(qsplit) == 3:
|
|
q = qsplit[1]
|
|
prefix = qsplit[0] + " - "
|
|
suffix = " - " + qsplit[2]
|
|
|
|
r = get_id(q)
|
|
id = r[0]
|
|
tag = r[1]
|
|
if (id == -1):
|
|
continue
|
|
elif (id > 0):
|
|
q = "[%s](https://wowhead.com/quest=%s)" % (q, id)
|
|
|
|
output = "%s\n\\[%s\\] %s%s%s" % (output, tag, prefix, q, suffix)
|
|
|
|
if output != '':
|
|
output = sanitize(output)
|
|
send_message(output.strip())
|