Exemple #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
Exemple #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)
Exemple #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
Exemple #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)
Exemple #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)