Пример #1
0
 def move(self,
          page: Page,
          new_title,
          reason='',
          move_talk=True,
          no_redirect=False,
          move_subpages=False,
          ignore_warnings=False):
     try:
         page.site = self.client
         page.move(new_title,
                   reason=reason,
                   move_talk=move_talk,
                   no_redirect=no_redirect,
                   move_subpages=move_subpages,
                   ignore_warnings=ignore_warnings)
     except APIError as e:
         if e.code == 'badtoken':
             self._retry_login_action(self._retry_move,
                                      'move',
                                      page=page,
                                      new_title=new_title,
                                      reason=reason,
                                      move_talk=move_talk,
                                      no_redirect=no_redirect,
                                      move_subpages=move_subpages,
                                      ignore_warnings=ignore_warnings)
         else:
             raise e
Пример #2
0
 def save(self,
          page: Page,
          text,
          summary=u'',
          minor=False,
          bot=True,
          section=None,
          **kwargs):
     """
     Performs a page edit, retrying the login once if the edit fails due to the user being logged out
     
     This function hopefully makes it easy to workaround the lag and frequent login timeouts
     experienced on the Fandom UCP platform compared to Gamepedia Hydra.
     
     :param page: mwclient Page object
     :param text: as in mwclient.Page.edit
     :param summary: as in mwclient.Page.edit
     :param minor: as in mwclient.Page.edit
     :param bot: as in mwclient.Page.edit
     :param section: as in mwclient.Page.edit
     :param kwargs: as in mwclient.Page.edit
     :return: nothing
     """
     try:
         page.site = self.client
         page.edit(text,
                   summary=summary,
                   minor=minor,
                   bot=bot,
                   section=section,
                   **kwargs)
     except self.write_errors:
         self._retry_login_action(self._retry_save,
                                  'edit',
                                  page=page,
                                  text=text,
                                  summary=summary,
                                  minor=minor,
                                  bot=bot,
                                  section=section,
                                  **kwargs)
Пример #3
0
 def delete(self,
            page: Page,
            reason='',
            watch=False,
            unwatch=False,
            oldimage=False):
     try:
         page.site = self.client
         page.delete(reason=reason,
                     watch=watch,
                     unwatch=unwatch,
                     oldimage=oldimage)
     except APIError as e:
         if e.code == 'badtoken':
             self._retry_login_action(self._retry_delete,
                                      'delete',
                                      page=page,
                                      reason=reason,
                                      watch=watch,
                                      unwatch=unwatch,
                                      oldimage=oldimage)
         else:
             raise e
Пример #4
0
 def purge(self, page: Page):
     try:
         page.site = self.client
         page.purge()
     except self.write_errors:
         self._retry_login_action(self._retry_purge, 'purge', page=page)
Пример #5
0
 def touch(self, page: Page):
     try:
         page.site = self.client
         page.touch()
     except self.write_errors:
         self._retry_login_action(self._retry_touch, 'touch', page=page)