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

→‎コード: v4.1.12 バリデーション追加 長すぎて構文解析されないですね…クラス毎にファイルを分けるのが理想なのですが…
>Fet-Fe
(→‎コード: v4.1.11 魚拓を探すときに日付が合わない問題を修正)
>Fet-Fe
(→‎コード: v4.1.12 バリデーション追加 長すぎて構文解析されないですね…クラス毎にファイルを分けるのが理想なのですが…)
11行目: 11行目:
"""Twitter自動収集スクリプト
"""Twitter自動収集スクリプト


ver4.1.11 2023/12/18恒心
ver4.1.12 2024/1/11恒心


当コードは恒心停止してしまった https://rentry.co/7298g の降臨ショーツイート自動収集スクリプトの復刻改善版です
当コードは恒心停止してしまった https://rentry.co/7298g の降臨ショーツイート自動収集スクリプトの復刻改善版です
141行目: 141行目:
         """``--search-unarchived`` オプションを付けたときに使用する設定値。
         """``--search-unarchived`` オプションを付けたときに使用する設定値。
         """
         """
         tweet_url_prefix_default: Final[str] = '173'
         tweet_url_prefix_default: Final[str] = '174'
         """Final[str]: ツイートURLの数字部分のうち、予め固定しておく部分。
         """Final[str]: ツイートURLの数字部分のうち、予め固定しておく部分。


155行目: 155行目:
         """
         """


         incremented_num_default: Final[int] = 0
         incremented_num_default: Final[int] = 3
         """Final[int]: ツイートURLの数字部分うち、インクリメントする桁のデフォルト値。
         """Final[int]: ツイートURLの数字部分うち、インクリメントする桁のデフォルト値。


1,040行目: 1,040行目:
         """コンストラクタ。
         """コンストラクタ。
         """
         """
         self._check_slash()  # スラッシュが抜けてないかチェック
         self._check_constants()  # スラッシュが抜けてないかチェック
         self._has_ffmpeg: Final[bool] = self._check_ffmpeg()  # ffmpegがあるかチェック
         self._has_ffmpeg: Final[bool] = self._check_ffmpeg()  # ffmpegがあるかチェック


1,122行目: 1,122行目:
         return True
         return True


     def _check_slash(self) -> None | NoReturn:
     def _check_constants(self) -> None | NoReturn:
         """URLの最後にスラッシュが付いていなければエラーを出す。
         """定数のバリデーションを行う。
 
         Returns:
         Returns:
             None | NoReturn: すべてのURLが正しければ `None`。失敗したら例外を出す。
             None | NoReturn: すべての対象定数が正しければ `None`。失敗したら例外を出す。


         Raises:
         Raises:
             RuntimeError: URLの最後にスラッシュがついていない場合に出る。
             AssertionError: バリデーションに違反した場合に出る。
         """
         """
         if self.NITTER_INSTANCE[-1] != '/':
         assert self.NITTER_INSTANCE[-1] == '/', 'NITTER_INSTANCEの末尾をには/が必須です'
            raise RuntimeError('NITTER_INSTANCEの末尾をには/が必須です')
         assert self.ARCHIVE_TODAY[-1] == '/', 'ARCHIVE_TODAYの末尾をには/が必須です'
         if self.ARCHIVE_TODAY[-1] != '/':
         assert self.ARCHIVE_TODAY_STANDARD[-1] == '/', \
            raise RuntimeError('ARCHIVE_TODAYの末尾をには/が必須です')
             'ARCHIVE_TODAY_STANDARDの末尾をには/が必須です'
         if self.ARCHIVE_TODAY_STANDARD[-1] != '/':
         assert self.TWITTER_URL[-1] == '/', 'TWITTER_URLの末尾をには/が必須です'
             raise RuntimeError('ARCHIVE_TODAY_STANDARDの末尾をには/が必須です')
         if self.TWITTER_URL[-1] != '/':
            raise RuntimeError('TWITTER_URLの末尾をには/が必須です')


     def _check_ffmpeg(self) -> bool:
     def _check_ffmpeg(self) -> bool:
1,909行目: 1,907行目:


     :const:`~TWEET_URL_PREFIX_DEFAULT` に続く桁をこの数字からインクリメントする。
     :const:`~TWEET_URL_PREFIX_DEFAULT` に続く桁をこの数字からインクリメントする。
    0から9の間の整数でなければならない。
     :func:`~_next_url` の `incremented_num` のデフォルト値。
     :func:`~_next_url` の `incremented_num` のデフォルト値。
     """
     """
1,952行目: 1,951行目:
         self._url_list: list[UrlTuple] = []
         self._url_list: list[UrlTuple] = []
         return True
         return True
    @override
    def _check_constants(self) -> None | NoReturn:
        super()._check_constants()
        assert (isinstance(self.INCREMENTED_NUM_DEFAULT, int)
                and 0 <= self.INCREMENTED_NUM_DEFAULT <= 9), \
            'INCREMENTED_NUM_DEFAULTは0から9の整数のみでふ'


     def _get_tweet_urls_from_wiki(self, accessor: AccessorHandler) -> None:
     def _get_tweet_urls_from_wiki(self, accessor: AccessorHandler) -> None:
匿名利用者