「利用者:夜泣き/スクリプト」の版間の差分

編集の要約なし
>夜泣き
(タイムゾーンの設定忘れ)
>Fet-Fe
編集の要約なし
6行目: 6行目:


'''
'''
ver2.1.3 2022/9/17恒心
ver2.1.4 2022/9/22恒心


当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です
当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です
42行目: 42行目:
import re
import re
import json
import json
from datetime import datetime, timezone
from datetime import datetime
from zoneinfo import ZoneInfo
from time import sleep
from time import sleep
from typing import Final, NoReturn, TypeAlias
from typing import Final, NoReturn, TypeAlias
from urllib.parse import quote, unquote
from urllib.parse import quote, unquote, urljoin
import warnings
import warnings


import pytz
import requests
import requests
import bs4
import bs4
66行目: 66行目:
   ##末尾にスラッシュ必須
   ##末尾にスラッシュ必須
   NITTER_INSTANCE: Final[str] = 'http://nitterqdyumlovt7tjqpdjrluitgmtpa53qq3idlpgoe4kxo7gs3xvad.onion/'
   NITTER_INSTANCE: Final[str] = 'http://nitterqdyumlovt7tjqpdjrluitgmtpa53qq3idlpgoe4kxo7gs3xvad.onion/'
  #NITTER_INSTANCE: Final[str] = 'http://ibsboeui2im5o7dxnik3s5yghufumgy5abevtij5nbizequfpu4qi4ad.onion/'


   ##archive.todayの魚拓
   ##archive.todayの魚拓
79行目: 78行目:


   ##twitterのURL
   ##twitterのURL
   ##末尾にスラッシュ禁止
   ##末尾にスラッシュ必須
   TWITTER_URL: Final[str] = 'https://twitter.com'
   TWITTER_URL: Final[str] = 'https://twitter.com/'


   ##降臨ショーのユーザーネーム
   ##降臨ショーのユーザーネーム
157行目: 156行目:
     if krsw:
     if krsw:
       print('クエリは自動的になしにナリます')
       print('クエリは自動的になしにナリます')
       self._page: Response | None = self._request(self.NITTER_INSTANCE + self.SEARCH_QUERY + name)
       self._page: Response | None = self._request(urljoin(self.NITTER_INSTANCE, self.SEARCH_QUERY + name))
       if self._page is None:
       if self._page is None:
         self._fail()
         self._fail()
171行目: 170行目:


     ##日付取得
     ##日付取得
     self._date = self._tweet_date(BeautifulSoup(self._page.text, 'html.parser').find(class_='timeline-item'))
     self._date: datetime = self._tweet_date(BeautifulSoup(self._page.text, 'html.parser').find(class_='timeline-item'))
     self._txt_data.append('')
     self._txt_data.append('')
     print()
     print()
183行目: 182行目:
   ##失敗かどうかは呼出側で要判定
   ##失敗かどうかは呼出側で要判定
   def _request_once(self, url: Final[str]) -> Response:
   def _request_once(self, url: Final[str]) -> Response:
     res: Response = requests.get(url, timeout=self.REQUEST_TIMEOUT, headers=self.HEADERS, allow_redirects=False)
     res: Response = requests.get(url, timeout=self.REQUEST_TIMEOUT, headers=self.HEADERS, allow_redirects=False, proxies=self.PROXIES)
     sleep(self.WAIT_TIME) ##DoS対策で待つ
     sleep(self.WAIT_TIME) ##DoS対策で待つ
     return res
     return res
208行目: 207行目:


   ##URLの最後にスラッシュ付いていなければ付ける
   ##URLの最後にスラッシュ付いていなければ付ける
  ##Twitterだけスラッシュ付いていないほうが都合いいので抜く
   def _check_slash(self) -> None | NoReturn:
   def _check_slash(self) -> None | NoReturn:
     if self.NITTER_INSTANCE[-1] != '/':
     if self.NITTER_INSTANCE[-1] != '/':
216行目: 214行目:
     if self.ARCHIVE_TODAY_STANDARD[-1] != '/':
     if self.ARCHIVE_TODAY_STANDARD[-1] != '/':
       raise RuntimeError('ARCHIVE_TODAY_STANDARDの末尾には/が必須です')
       raise RuntimeError('ARCHIVE_TODAY_STANDARDの末尾には/が必須です')
     if self.TWITTER_URL[-1] == '/':
     if self.TWITTER_URL[-1] != '/':
       raise RuntimeError('TWITTER_URLの末尾には/があってはいけません')
       raise RuntimeError('TWITTER_URLの末尾には/が必須です')


   ##Torが使えているかチェック
   ##Torが使えているかチェック
258行目: 256行目:
         return self.CALLINSHOW
         return self.CALLINSHOW
       else:
       else:
         res: Response | None = self._request(self.NITTER_INSTANCE + account_str) ##リクエストして結果取得
         res: Response | None = self._request(urljoin(self.NITTER_INSTANCE, account_str)) ##リクエストして結果取得
         if res is None : ##リクエスト失敗判定
         if res is None : ##リクエスト失敗判定
           self._fail()
           self._fail()
279行目: 277行目:
         query_str.append(quote(query_input))
         query_str.append(quote(query_input))
         query_input = input()
         query_input = input()
       res: Response | None = self._request(self.NITTER_INSTANCE + self.SEARCH_QUERY + '+'.join(query_str)) ##リクエストして結果取得
      print("検索クエリでリクエストしているナリ……")
       res: Response | None = self._request(urljoin(self.NITTER_INSTANCE, self.SEARCH_QUERY + '+'.join(query_str))) ##リクエストして結果取得
       if res is None : ##リクエスト失敗判定
       if res is None : ##リクエスト失敗判定
         self._fail()
         self._fail()
300行目: 299行目:


   ##self._txt_dataにwikiでテーブル表示にするためのタグをつける
   ##self._txt_dataにwikiでテーブル表示にするためのタグをつける
   def _text_table(self) -> None:
   def _convert_to_text_table(self, text) -> str:
     self._txt_data[0] = '{|class="wikitable" style="text-align: left;"\n' + self._txt_data[0] + '|}'
     return '{|class="wikitable" style="text-align: left;"\n' + text + '|}'


   ##テキスト発行
   ##テキスト発行
322行目: 321行目:
   def _download_media(self, media_name: Final[str]) -> bool:
   def _download_media(self, media_name: Final[str]) -> bool:
     os.makedirs(self.MEDIA_DIR, exist_ok=True)
     os.makedirs(self.MEDIA_DIR, exist_ok=True)
     url: Final[str] = 'https://pbs.twimg.com/media/' + media_name
     url: Final[str] = urljoin('https://pbs.twimg.com/media/', media_name)
     res: Final[Response | None] = self._request(url)
     res: Final[Response | None] = self._request(url)
     if res is not None:
     if res is not None:
       if 'image' not in res.headers['content-type']:
       if 'image' not in res.headers['content-type']:
         return False
         return False
       with open(self.MEDIA_DIR + '/' + media_name, "wb") as f:
       with open(os.path.join(self.MEDIA_DIR, media_name), "wb") as f:
         f.write(res.content)
         f.write(res.content)
       return True
       return True
335行目: 334行目:
   ##ツイートの日付を取得
   ##ツイートの日付を取得
   def _tweet_date(self, tweet: bs4.element.Tag) -> datetime:
   def _tweet_date(self, tweet: bs4.element.Tag) -> datetime:
     date_str = tweet.find(class_='tweet-date').a['title']
     date_str: str = tweet.find(class_='tweet-date').a['title']
     date = datetime.strptime(date_str, '%b %d, %Y · %I:%M %p UTC').replace(tzinfo=timezone.utc)
     date: datetime = datetime.strptime(date_str, '%b %d, %Y · %I:%M %p %Z').replace(tzinfo=ZoneInfo('UTC')).astimezone(ZoneInfo('Asia/Tokyo'))
    tokyo = pytz.timezone('Asia/Tokyo')
    date = date.astimezone(tokyo)
     return date
     return date


   #self._dateの日付のツイートがなくなったときの処理
   #self._dateの日付のツイートがなくなったときの処理
   def _next_day(self, date: datetime | None = None) -> None:
   def _next_day(self, date: datetime | None = None) -> None:
     self._text_table()
     if self._txt_data[0]: # 空でなければ出力
    self._txt_data[0] = self._date.strftime('=== %m月%d日 ===\n') + self._txt_data[0]
      self._txt_data[0] = self._convert_to_text_table(self._txt_data[0])
    print(self._date.strftime('%m月%d日のツイートを取得完了ですを'))
      if os.name == 'nt': # Windows
        self._txt_data[0] = self._date.strftime('\n=== %#m月%#d日 ===\n') + self._txt_data[0]
        print(self._date.strftime('%#m月%#d日のツイートを取得完了ですを'))
      else: # Mac or Linux
        self._txt_data[0] = self._date.strftime('\n=== %-m月%-d日 ===\n') + self._txt_data[0]
        print(self._date.strftime('%-m月%-d日のツイートを取得完了ですを'))
     if date is not None:
     if date is not None:
       self._txt_data.insert(0,'')
       self._txt_data.insert(0, '')
       self._date = date
       self._date = date


360行目: 362行目:
         media_list.append(f"[[ファイル:{media_name}|240px]]")
         media_list.append(f"[[ファイル:{media_name}|240px]]")
         if self._download_media(media_name):
         if self._download_media(media_name):
           print(self.MEDIA_DIR + '/' + media_name + ' をアップロードしなければない。')
           print(os.path.join(self.MEDIA_DIR, media_name) + ' をアップロードしなければない。')
         else:
         else:
           print('https://pbs.twimg.com/media/' + media_name + ' をアップロードしなければない。')
           print(urljoin('https://pbs.twimg.com/media/', media_name) + ' をアップロードしなければない。')
       # 動画についてはm3u8で落ちてきて面倒臭いため取得しない
       # 動画についてはm3u8で落ちてきて面倒臭いため取得しない
       """
       """
378行目: 380行目:
       link: str = tweet_quote.select_one('.quote-link').get('href')
       link: str = tweet_quote.select_one('.quote-link').get('href')
       link = re.sub('#.*$', '', link)
       link = re.sub('#.*$', '', link)
       link = self.TWITTER_URL + link
       link = urljoin(self.TWITTER_URL, link)
       quote_txt = '<br>\n' + self._archive_url(link, link)
       quote_txt = '<br>\n' + self._archive_url(link, link)
     return quote_txt
     return quote_txt
  def _get_tweet_poll(self, tweet: bs4.element.Tag) -> str:
    tweet_poll: Final[bs4.element.Tag | None] = tweet.select_one('.tweet-body > .poll')
    poll_txt: str = ''
    if tweet_poll is not None:
      poll_meters = tweet_poll.select('.poll-meter')
      poll_txt += '<br>\n'
      for poll_meter in poll_meters:
        poll_txt += '<br>\n&nbsp; ' + poll_meter.select_one('.poll-choice-value').text + ' ' + poll_meter.select_one('.poll-choice-option').text
      poll_txt += '<br>\n&nbsp; ' + tweet_poll.select_one('.poll-info').text
    return poll_txt


   #ページからツイート本文をself._txt_dataに収めていく
   #ページからツイート本文をself._txt_dataに収めていく
391行目: 404行目:
       if tweet.find(class_='retweet-header') is not None: ##retweet-headerはリツイートを示すので入っていれば処理しない
       if tweet.find(class_='retweet-header') is not None: ##retweet-headerはリツイートを示すので入っていれば処理しない
         continue
         continue
       tweet_url: str = self.TWITTER_URL + re.sub('#[^#]*$', '', tweet.find(class_='tweet-link').get('href')) ##ツイートのURL作成
       tweet_url: str = urljoin(self.TWITTER_URL, re.sub('#[^#]*$', '', tweet.find(class_='tweet-link').get('href'))) ##ツイートのURL作成
       date = self._tweet_date(tweet)
       date = self._tweet_date(tweet)
       if date.year != self._date.year or date.month != self._date.month or date.day != self._date.day:
       if date.year != self._date.year or date.month != self._date.month or date.day != self._date.day:
398行目: 411行目:
       tweet_content: bs4.element.Tag = tweet.find(class_='tweet-content media-body') ##ツイートの中身だけ取り出す
       tweet_content: bs4.element.Tag = tweet.find(class_='tweet-content media-body') ##ツイートの中身だけ取り出す
       self._archive_soup(tweet_content) ##ツイートの中身のリンクをテンプレートArchiveに変化
       self._archive_soup(tweet_content) ##ツイートの中身のリンクをテンプレートArchiveに変化
      poll_txt: str = self._get_tweet_poll(tweet) ##投票の取得
       media_txt: str = self._get_tweet_media(tweet) ##ツイートに画像などのメディアを追加
       media_txt: str = self._get_tweet_media(tweet) ##ツイートに画像などのメディアを追加
       quote_txt: str = self._get_tweet_quote(tweet) ##引用リツイートの場合、元ツイートを追加
       quote_txt: str = self._get_tweet_quote(tweet) ##引用リツイートの場合、元ツイートを追加
       self._txt_data[0] = '!' + archived_tweet_url + '\n|-\n|\n' \
       self._txt_data[0] = '!' + archived_tweet_url + '\n|-\n|\n' \
         + self._escape_wiki_reserved_words(tweet_content.get_text()) \
         + self._escape_wiki_reserved_words(tweet_content.get_text()) \
         + quote_txt + media_txt + '\n|-\n' \
         + poll_txt + quote_txt + media_txt + '\n|-\n' \
         + self._txt_data[0] ##wikiの文法に変化
         + self._txt_data[0] ##wikiの文法に変化
       self._limit_count += 1 ##記録回数をカウント
       self._limit_count += 1 ##記録回数をカウント
446行目: 460行目:
         if re.match('https' + self.NITTER_INSTANCE[4:], url.get('href')):
         if re.match('https' + self.NITTER_INSTANCE[4:], url.get('href')):
           #Nitter上のTwitterへのリンクを直す
           #Nitter上のTwitterへのリンクを直す
           url_link: str = url.get('href').replace('https' + self.NITTER_INSTANCE[4:], self.TWITTER_URL + '/')
           url_link: str = url.get('href').replace('https' + self.NITTER_INSTANCE[4:], self.TWITTER_URL)
           url_link = re.sub('\?.*$', '', url_link)
           url_link = re.sub('\?.*$', '', url_link)
           url.replace_with(self._archive_url(url_link, url_link)) ##テンプレートArchiveに変化
           url.replace_with(self._archive_url(url_link, url_link)) ##テンプレートArchiveに変化
468行目: 482行目:
   ##URLから魚拓返す
   ##URLから魚拓返す
   def _archive(self, url: Final[str]) -> str:
   def _archive(self, url: Final[str]) -> str:
     archive_url: str = self.ARCHIVE_TODAY_STANDARD + url.replace('#', '%23') ##wikiに載せるとき用URLで失敗するとこのままhttps://archive.ph/https://xxxxxxxxの形で返される
     archive_url: str = urljoin(self.ARCHIVE_TODAY_STANDARD, quote(unquote(url), safe='&=+?%')) ##wikiに載せるとき用URLで失敗するとこのままhttps://archive.ph/https%3A%2F%2Fxxxxxxxxの形で返される
     res: Final[Response | None] = self._request(self.ARCHIVE_TODAY + url.replace('#', '%23')) ##アクセス用URL使って結果を取得
     res: Final[Response | None] = self._request(urljoin(self.ARCHIVE_TODAY, quote(unquote(url), safe='&=+?%'))) ##アクセス用URL使って結果を取得
     if res is None : ##魚拓接続失敗時処理
     if res is None : ##魚拓接続失敗時処理
       print(archive_url + 'にアクセス失敗ナリ。出力されるテキストにはそのまま記載されるナリ。')
       print(archive_url + 'にアクセス失敗ナリ。出力されるテキストにはそのまま記載されるナリ。')
487行目: 501行目:
     for show_more in show_mores: ##show-moreに次ページへのリンクか前ページへのリンクがある
     for show_more in show_mores: ##show-moreに次ページへのリンクか前ページへのリンクがある
       if show_more.text != self.NEWEST:  ##前ページへのリンクではないか判定
       if show_more.text != self.NEWEST:  ##前ページへのリンクではないか判定
         new_url: str = self.NITTER_INSTANCE + self.SEARCH + show_more.a.get('href') ##直下のaタグのhrefの中身取ってURL頭部分と合体
         new_url: str = urljoin(self.NITTER_INSTANCE, self.SEARCH + show_more.a.get('href')) ##直下のaタグのhrefの中身取ってURL頭部分と合体
     res: Final[Response | None] = self._request(new_url) ##接続してHTML取ってくる
     res: Final[Response | None] = self._request(new_url) ##接続してHTML取ってくる
     if res is None:
     if res is None:
515行目: 529行目:
== 実行例 ==
== 実行例 ==
20件での実行例。
20件での実行例。
=== 09月15日 ===
 
=== 9月16日 ===
{|class="wikitable" style="text-align: left;"
{|class="wikitable" style="text-align: left;"
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570070806964862977|2=https://archive.ph/DUQA1}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570466085534838785|2=https://archive.ph/vUWjo}}
|-
|-
|
|
<nowiki>#</nowiki>一律現金十万円給付金を最優先に <br>
ようやく1日が終わる。<br>
<br>
<br>
これは明らかに無駄だから1人親支援、学生の奨学金についての返還債務を減らすことに使おう。
明日7時起き、やばいな。
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570078142018244610|2=https://archive.ph/5PadJ}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570466373406707713|2=https://archive.ph/suecX}}
|-
|-
|
|
誹謗中傷は良くない。<br>
仕事に追われ、こんな毎日です。。。<br>
{{Archive|1=https://twitter.com/ota324/status/1570005982666960897|2=https://archive.ph/Gak9f|3=https://twitter.com/ota324/status/1570005982666960897}}
{{Archive|1=https://twitter.com/kokueisecom/status/1570466219643502592|2=https://archive.ph/r6WIp|3=https://twitter.com/kokueisecom/status/1570466219643502592}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570207381098999808|2=https://archive.ph/DrAbJ}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570467186497716224|2=https://archive.ph/iNx2m}}
|-
|-
|
|
{{Archive|1=https://www.amazon.co.jp/祇園ばんや【ぬかの花スタートセット〈小〉1-2人用】食べられる美味しいぬか床セット-有機JAS米使用-14種の贅沢素材-半年以上熟成-京都・祇園料亭の味/dp/B00BIV1R34?ref_=ast_sto_dp|2=https://archive.ph/pgThW|3=https://www.amazon.co.jp/祇園ばんや【ぬかの花スタートセット〈小〉1-2人用】食べられる美味しいぬか床セット-有機JAS米使用-14種の贅沢素材-半年以上熟成-京都・祇園料亭の味/dp/B00BIV1R34?ref_=ast_sto_dp}}<br>
ありがとう❗️❗️<br>
<br>
{{Archive|1=https://twitter.com/kokueisecom/status/1570467045560713216|2=https://archive.ph/ntkky|3=https://twitter.com/kokueisecom/status/1570467045560713216}}
最近、これ買ってぬか漬け作ってるんだけど、ぬか漬けってコストパフォーマンス最高。<br>
<br>
つけといたら、1日で漬物できてて、夜つまめる。
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570394937958727681|2=https://archive.ph/6bdnx}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570468936298426370|2=https://archive.ph/yKcg7}}
|-
|-
|
|
KADOKAWAはコンプライアンスをちゃんとした方がいいよね。<br>
今日はブラックIT企業の未払い残業代の話の相談があって、若い人からの搾取やばいよな。
<br>
会社として。<br>
<br>
第三者委員会作って調査した方がいいよ。<br>
{{Archive|1=https://twitter.com/news24ntv/status/1569939142670417922|2=https://archive.ph/gHf0C|3=https://twitter.com/news24ntv/status/1569939142670417922}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570395927323770880|2=https://archive.ph/xTROh}}
|}
 
=== 9月17日 ===
{|class="wikitable" style="text-align: left;"
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570807392899829760|2=https://archive.ph/50Ntt}}
|-
|-
|
|
今日も濃い1日だよ。<br>
弁護士唐澤貴洋への匿名のメッセージを募集中!<br>
<br>
<nowiki>#</nowiki>マシュマロを投げ合おう<br>
何だろうな。
{{Archive|1=https://marshmallow-qa.com/apt/d4905b12-9dcf-4f81-af54-b6c3e5237007|2=https://archive.ph/yaEMc|3=https://marshmallow-qa.com/apt/d4905b12-9dcf-4f81-af54-b6c3e5237007}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570396210443452417|2=https://archive.ph/odbDG}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570878373873995779|2=https://archive.ph/bbED7}}
|-
|-
|
|
きゅうり買って帰ろうとしてたのに、まだ帰れない。
土曜日中京5R<br>
<br>
◎マイド<br>
<br>
中山5R<br>
<br>
◎スノードーム
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570396604963913728|2=https://archive.ph/rlaFL}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570983261572329472|2=https://archive.ph/fIArg}}
|-
|-
|
|
マスコミから取材の話がありましたが、僕はKADOKAWAと一切関係がないので、連絡してこないでください。<br>
今のところ全て的中<br>
{{Archive|1=https://twitter.com/CallinShow/status/1570394937958727681|2=https://archive.ph/6bdnx|3=https://twitter.com/CallinShow/status/1570394937958727681}}
<br>
後は中京8レースのみ<br>
[[ファイル:Fc1AvL6aAAALVhw.jpg|240px]]
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570397049245560834|2=https://archive.ph/HhOUw}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570983442170642434|2=https://archive.ph/gLfrX}}
|-
|-
|
|
色々ありすぎて疲れてるけど、何だか脳は活性化するのって何なんだろうな。<br>
早起きおじさんです。<br>
<br>
{{Archive|1=https://twitter.com/CallinShow/status/1570983261572329472|2=https://archive.ph/fIArg|3=https://twitter.com/CallinShow/status/1570983261572329472}}
アドレナリンってやつだな。
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570397072570085382|2=https://archive.ph/fnDoF}}
|}
 
=== 9月19日 ===
{|class="wikitable" style="text-align: left;"
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571721136668569602|2=https://archive.ph/8l0IJ}}
|-
|-
|
|
弁護士唐澤貴洋への匿名のメッセージを募集中!<br>
{{Archive|1=https://news.yahoo.co.jp/articles/7bb89d4d6c2f92807a86c05c942505592eaec60e|2=https://archive.ph/bPyFE|3=https://news.yahoo.co.jp/articles/7bb89d4d6c2f92807a86c05c942505592eaec60e}}<br>
<nowiki>#</nowiki>マシュマロを投げ合おう<br>
<br>
{{Archive|1=https://marshmallow-qa.com/apt/79c915f6-e889-4765-8dbb-cca0b6cea262|2=https://archive.ph/U55Qp|3=https://marshmallow-qa.com/apt/79c915f6-e889-4765-8dbb-cca0b6cea262}}
刺青入れたらカタギじゃないってどういう発想なんだ。<br>
<br>
カタギの定義が知りたいよ。
|-
|-
|}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571796244762365952|2=https://archive.ph/6TAu7}}
=== 09月16日 ===
{|class="wikitable" style="text-align: left;"
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570466085534838785|2=https://archive.ph/vUWjo}}
|-
|-
|
|
ようやく1日が終わる。<br>
{{Archive|1=https://youtu.be/2trjonQCFTU|2=https://archive.ph/fFdf1|3=https://youtu.be/2trjonQCFTU}}<br>
<br>
<br>
明日7時起き、やばいな。
神回。
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570466373406707713|2=https://archive.ph/suecX}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571796703229145089|2=https://archive.ph/6HzLi}}
|-
|-
|
|
仕事に追われ、こんな毎日です。。。<br>
日曜日中山11R<br>
{{Archive|1=https://twitter.com/kokueisecom/status/1570466219643502592|2=https://archive.ph/r6WIp|3=https://twitter.com/kokueisecom/status/1570466219643502592}}
<br>
◎ アスクビクターモア7.25<br>
◯ラーグルフ5.75<br>
▲ローシャムパーク4.75<br>
△オニャンコポン 4.75<br>
△ショウナンマグマ 4.75<br>
△キングズパレス 4.75<br>
△ボーンディスウェイ 4.75<br>
△マテンロウスカイ4.25<br>
△ガイアフォース 4.25<br>
<br>
これを元にして番組で予想しました。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1571796244762365952|2=https://archive.ph/6TAu7|3=https://twitter.com/CallinShow/status/1571796244762365952}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570467186497716224|2=https://archive.ph/iNx2m}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571798678263984129|2=https://archive.ph/VYez0}}
|-
|-
|
|
ありがとう❗️❗️<br>
みんな真剣に予想してるから太組不二雄チャンネル是非みてほしい。<br>
{{Archive|1=https://twitter.com/kokueisecom/status/1570467045560713216|2=https://archive.ph/ntkky|3=https://twitter.com/kokueisecom/status/1570467045560713216}}
<br>
今日なんか1000人以上が同時接続でいたな。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1571796244762365952|2=https://archive.ph/6TAu7|3=https://twitter.com/CallinShow/status/1571796244762365952}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570468251448250369|2=https://archive.ph/WicE5}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571799518383067138|2=https://archive.ph/yqeb2}}
|-
|-
|
|
内容証明書かないとな。<br>
オレの予想は、競馬新聞を100%読む。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1570467429033316352|2=https://archive.ph/wESfJ|3=https://twitter.com/CallinShow/status/1570467429033316352}}
<br>
競馬新聞は、情報の宝庫。<br>
<br>
競馬新聞は競馬ブック派。<br>
<br>
地方では、日刊競馬も買う。<br>
<br>
市川俊吾さんの予想を見るために。
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570468936298426370|2=https://archive.ph/yKcg7}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571804494631174144|2=https://archive.ph/APHc1}}
|-
|-
|
|
今日はブラックIT企業の未払い残業代の話の相談があって、若い人からの搾取やばいよな。
タトゥーに対してのアンケートを取りたいと思います。<br>
<br>
&nbsp; 35% タトゥーは文化だ。<br>
&nbsp; 65% タトゥーは文化じゃない。<br>
&nbsp; 717 votes • Final results
|-
|-
|}
|}
=== 09月17日 ===
 
=== 9月20日 ===
{|class="wikitable" style="text-align: left;"
{|class="wikitable" style="text-align: left;"
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570807392899829760|2=https://archive.ph/https://twitter.com/CallinShow/status/1570807392899829760}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572135837009342466|2=https://archive.ph/DnsUI}}
|-
|-
|
|
弁護士唐澤貴洋への匿名のメッセージを募集中!<br>
弁護士唐澤貴洋への匿名のメッセージを募集中!<br>
<nowiki>#</nowiki>マシュマロを投げ合おう<br>
<nowiki>#</nowiki>マシュマロを投げ合おう<br>
{{Archive|1=https://marshmallow-qa.com/apt/d4905b12-9dcf-4f81-af54-b6c3e5237007|2=https://archive.ph/https://marshmallow-qa.com/apt/d4905b12-9dcf-4f81-af54-b6c3e5237007|3=https://marshmallow-qa.com/apt/d4905b12-9dcf-4f81-af54-b6c3e5237007}}
{{Archive|1=https://marshmallow-qa.com/apt/1c6628a8-45c6-44f2-9a93-362ce5332b61|2=https://archive.ph/Y66Sy|3=https://marshmallow-qa.com/apt/1c6628a8-45c6-44f2-9a93-362ce5332b61}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570878373873995779|2=https://archive.ph/bbED7}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572184661442568193|2=https://archive.ph/K84kE}}
|-
|-
|
|
土曜日中京5R<br>
@rie0985 <br>
<br>
<br>
◎マイド<br>
書類が銀座に届いたのでご確認ください。<br>
<br>
<br>
中山5R<br>
お返事待っています。
<br>
◎スノードーム
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570983261572329472|2=https://archive.ph/fIArg}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572191953613385728|2=https://archive.ph/hJejs}}
|-
|-
|
|
今のところ全て的中<br>
素晴らしい。<br>
<br>
{{Archive|1=https://twitter.com/nyan_ika3/status/1572190195583422465|2=https://archive.ph/bQtFW|3=https://twitter.com/nyan_ika3/status/1572190195583422465}}
後は中京8レースのみ<br>
[[ファイル:Fc1AvL6aAAALVhw.jpg|240px]]
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570983442170642434|2=https://archive.ph/gLfrX}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572204964541526021|2=https://archive.ph/Keb1S}}
|-
|-
|
|
早起きおじさんです。<br>
35%いれば十分じゃない。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1570983261572329472|2=https://archive.ph/fIArg|3=https://twitter.com/CallinShow/status/1570983261572329472}}
<br>
35%がカタギじゃないって国ないだろ。<br>
<br>
35%の人が応援してくれる政党ありじゃない。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1571804494631174144|2=https://archive.ph/APHc1|3=https://twitter.com/CallinShow/status/1571804494631174144}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1570985131527262212|2=https://archive.ph/Tde3Z}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572208999025741824|2=https://archive.ph/2eoOV}}
|-
|-
|
|
教育委員会ちゃんとしなきゃだめだろ。<br>
カタギの場所に入れないってことはカタギじゃない扱いだよな。<br>
{{Archive|1=https://twitter.com/takigare3/status/1570737878128529408|2=https://archive.ph/k4nim|3=https://twitter.com/takigare3/status/1570737878128529408}}
定義もしっかりしてないのに、何を意味あるように話してるんだろうな。<br>
{{Archive|1=https://twitter.com/CallinShow/status/1571721136668569602|2=https://archive.ph/8l0IJ|3=https://twitter.com/CallinShow/status/1571721136668569602}}
|-
|-
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1571039304834777091|2=https://archive.ph/HkTO9}}
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1572215385348534272|2=https://archive.ph/WsO05}}
|-
|-
|
|
{{Archive|1=https://youtu.be/bVn0GSysmcI|2=https://archive.ph/https://youtu.be/bVn0GSysmcI|3=https://youtu.be/bVn0GSysmcI}}<br>
今日も疲れきった。<br>
<br>
<br>
株式会社エンリケ空間の代表取締役だから、知らないでは済まない。<br>
オレも歳だな。
債権者に今提示されている書類は、色々ツッコミどころがある。
|-
|-
|}
|}
匿名利用者