def midnight_tweet(param): if param and '/' in param: splitted = param.split('/') month = splitted[0] day = splitted[1].split('#')[0] else: now = datetime.now(timezone(timedelta(hours=9))) # JST current time month = str(now.month) day = str(now.day) month_day_str = month+'月'+day+'日' content = wikipedia.get_content_wiki('Wikipedia:今日は何の日_'+month+'月') content = content[re.search(r'^==\s*\[\['+month_day_str+'\]\]\s*==$', content, re.MULTILINE).end():] next_header = re.search(r'^==[^=]', content, re.MULTILINE) if next_header: content = content[:next_header.start()] items = re.findall(r'^\*.*$', content, re.MULTILINE) choice = wikipedia.strip_wiki_notation(items[random.randint(0, len(items)-1) if not param or '#' not in param else int(param.split('#')[1])]) year_match = re.search(r'(\(|()([0-90-9]*?年).*(\)|))\s*$',choice) if year_match: year = year_match.group(2) event = choice[:year_match.start()] else: year = None event = choice summary = summarize_today(event, year) return Template('よるほー。明けて本日${date}は、${year}${summary} ${url}' ).substitute({ 'date':month_day_str, 'year':year+'に' if year else '', 'url':wikipedia.get_article_url(month_day_str), 'summary':summary})
def random_tweet(param): if param: item, content = (param, wikipedia.get_content_wiki(param)) else: item, content = wikipedia.get_random_content_wiki() return Template('「${item}」 ${url} ${summary}' ).substitute({ 'item':item, 'url':wikipedia.get_article_url(item), 'summary':summarize(wikipedia.strip_wiki_notation(content))})
def noon_tweet(param): wiki_link_pattern = re.compile(r'\[\[(.*?)\]\]') featured_wiki = wikipedia.get_content_wiki('Wikipedia:秀逸な記事') articles = wiki_link_pattern.findall(featured_wiki[featured_wiki.find('== 秀逸な記事 =='):featured_wiki.rfind('== 関連項目 ==')]) good_beginning = len(articles) good_wiki = wikipedia.get_content_wiki('Wikipedia:良質な記事/リスト') articles.extend(wiki_link_pattern.findall(good_wiki[good_wiki.find('=== 総記 ==='):])) if param: i = int(param.split('#')[1]) else: i = random.randint(0, len(articles)-1) item = articles[i] return Template('お昼ですよー。${featured_or_good}な記事を紹介しますね。「${item}」 ${url} ${summary}').substitute({ 'featured_or_good': '秀逸' if i<good_beginning else '良質', 'item': item, 'url': wikipedia.get_article_url(item), 'summary': summarize(wikipedia.strip_wiki_notation(wikipedia.get_content_wiki(item)))})