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

→‎コード: v2.2.8 文字なし投稿で最初に改行が入るのを修正、archiveで冗長な3つ目の引数を除く
>Fet-Fe
(→‎コード: v2.2.7 jpg以外のファイル形式の画像を取れるよう修正、youtube関係のshort用短縮url判定などのロジック追加)
>Fet-Fe
(→‎コード: v2.2.8 文字なし投稿で最初に改行が入るのを修正、archiveで冗長な3つ目の引数を除く)
6行目: 6行目:


'''
'''
ver2.2.7 2023/3/5恒心
ver2.2.8 2023/3/6恒心


当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です
当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です
451行目: 451行目:
             print(f"{tweet_url}の動画が取得できませんでしたを 当職無能")
             print(f"{tweet_url}の動画が取得できませんでしたを 当職無能")
             media_list.append(f"[[ファイル:(動画の取得ができませんでした)|240px]]")
             media_list.append(f"[[ファイル:(動画の取得ができませんでした)|240px]]")
       media_txt = '<br>\n' + ' '.join(media_list)
       media_txt = ' '.join(media_list)
     return media_txt
     return media_txt


461行目: 461行目:
       link = re.sub('#.*$', '', link)
       link = re.sub('#.*$', '', link)
       link = urljoin(self.TWITTER_URL, link)
       link = urljoin(self.TWITTER_URL, link)
       quote_txt = '<br>\n' + self._archive_url(link, link)
       quote_txt = self._archive_url(link, link)
     return quote_txt
     return quote_txt


469行目: 469行目:
     if tweet_poll is not None:
     if tweet_poll is not None:
       poll_meters: Final[bs4.element.ResultSet] = tweet_poll.select('.poll-meter')
       poll_meters: Final[bs4.element.ResultSet] = tweet_poll.select('.poll-meter')
      poll_txt += '<br>\n'
       for poll_meter in poll_meters:
       for poll_meter in poll_meters:
         ratio: str = poll_meter.select_one('.poll-choice-value').text
         ratio: str = poll_meter.select_one('.poll-choice-value').text
511行目: 510行目:
       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) ##引用リツイートの場合、元ツイートを追加
      poll_txt: str = self._get_tweet_poll(tweet) ##投票の取得
       self._check_additional_info(tweet, tweet_url) ##編集や長いツイートの省略をチェック
       self._check_additional_info(tweet, tweet_url) ##編集や長いツイートの省略をチェック
       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()) \
         + '<br>\n'.join(filter(None, [
         + poll_txt + quote_txt + media_txt + '\n|-\n' \
          self._escape_wiki_reserved_words(tweet_content.get_text()),
          quote_txt,
          media_txt,
          poll_txt
        ])) \
         + '\n|-\n' \
         + self._txt_data[0] ##wikiの文法に変化
         + self._txt_data[0] ##wikiの文法に変化
       self._limit_count += 1 ##記録回数をカウント
       self._limit_count += 1 ##記録回数をカウント
570行目: 574行目:
   #URLをテンプレートArchiveに変化させる
   #URLをテンプレートArchiveに変化させる
   def _archive_url(self, url: Final[str], text: Final[str]) -> str:
   def _archive_url(self, url: Final[str], text: Final[str]) -> str:
     return '{{Archive|1=' + unquote(url) + '|2=' + self._archive(url) + '|3=' + unquote(text)  + '}}' ##テンプレートArchiveの文字列返す
     return '{{Archive|1=' + unquote(url) + '|2=' + self._archive(url) + '}}' ##テンプレートArchiveの文字列返す


   #URLをテンプレートCallinShowlinkに変化させる
   #URLをテンプレートCallinShowlinkに変化させる
匿名利用者