# your code goes here
import requests
from bs4 import BeautifulSoup
import time
from random import randint
def lineNotifyMessage(token, msg):
headers = {
"Authorization": "Bearer " + token,
"Content-Type" : "application/x-www-form-urlencoded"
}
payload = {'message': msg}
r = requests.post("https://n...content-available-to-author-only...e.me/api/notify", headers = headers, params = payload)
return r.status_code
token = 'my token'
message = '有票RRR'
URL = "https://w...content-available-to-author-only...t.cc/bbs/Drama-Ticket/index.html"
lastOne = ""
while True:
response = requests.get(URL)
soup = BeautifulSoup(response.text, 'html.parser')
titles = soup.find_all('div', {'class': 'title'})
for title in titles[-5::-1]:
if title == lastOne:
break
if '五月天' in title.text and '售' in title.text:
lineNotifyMessage(token,message+title.text)
print(title.text)
lastOne = titles[-5]
waiting_times = 30+randint(0,40)
print(waiting_times)
time.sleep(waiting_times)
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmltcG9ydCByZXF1ZXN0cwpmcm9tIGJzNCBpbXBvcnQgQmVhdXRpZnVsU291cAppbXBvcnQgdGltZQpmcm9tIHJhbmRvbSBpbXBvcnQgcmFuZGludCAKCmRlZiBsaW5lTm90aWZ5TWVzc2FnZSh0b2tlbiwgbXNnKToKICAgIGhlYWRlcnMgPSB7CiAgICAgICAgICAiQXV0aG9yaXphdGlvbiI6ICJCZWFyZXIgIiArIHRva2VuLCAKICAgICAgICAgICJDb250ZW50LVR5cGUiIDogImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIKICAgICAgfQogICAgcGF5bG9hZCA9IHsnbWVzc2FnZSc6IG1zZ30KICAgIHIgPSByZXF1ZXN0cy5wb3N0KCJodHRwczovL24uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUubWUvYXBpL25vdGlmeSIsIGhlYWRlcnMgPSBoZWFkZXJzLCBwYXJhbXMgPSBwYXlsb2FkKQogICAgcmV0dXJuIHIuc3RhdHVzX2NvZGUKCnRva2VuID0gJ215IHRva2VuJwptZXNzYWdlID0gJ+acieelqFJSUicKVVJMID0gImh0dHBzOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4udC5jYy9iYnMvRHJhbWEtVGlja2V0L2luZGV4Lmh0bWwiCmxhc3RPbmUgPSAiIgoKd2hpbGUgVHJ1ZToKICAgIHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KFVSTCkKICAgIHNvdXAgPSBCZWF1dGlmdWxTb3VwKHJlc3BvbnNlLnRleHQsICdodG1sLnBhcnNlcicpCiAKICAgIHRpdGxlcyA9IHNvdXAuZmluZF9hbGwoJ2RpdicsIHsnY2xhc3MnOiAndGl0bGUnfSkKICAgIAogICAgZm9yIHRpdGxlIGluIHRpdGxlc1stNTo6LTFdOiAgICAgICAKICAgICAgICBpZiB0aXRsZSA9PSBsYXN0T25lOgogICAgICAgICAgICBicmVhawogICAgICAgCiAgICAgICAgaWYgJ+S6lOaciOWkqScgaW4gdGl0bGUudGV4dCBhbmQgJ+WUricgaW4gdGl0bGUudGV4dDoKICAgICAgICAgICAgbGluZU5vdGlmeU1lc3NhZ2UodG9rZW4sbWVzc2FnZSt0aXRsZS50ZXh0KQogICAgICAgICAgICBwcmludCh0aXRsZS50ZXh0KQoKICAgIGxhc3RPbmUgPSB0aXRsZXNbLTVdCgogICAgd2FpdGluZ190aW1lcyA9IDMwK3JhbmRpbnQoMCw0MCkKICAgIHByaW50KHdhaXRpbmdfdGltZXMpCiAgICB0aW1lLnNsZWVwKHdhaXRpbmdfdGltZXMpCg==