Ejemplo n.º 1
0
    def optionsTappedWithPostIdownerIdisNewsViewController(
            self, postId, ownerId, isNewsViewController):
        try:
            dialogsManager = PyDialogsManager()
            items = ['copy_url']
            #if ownerId != vk.userId():
            items.append('report')
            # если новостная лента, скрываем новости источника (опционально)
            if isNewsViewController == True:
                items.append('it_is_not_interesting')
                items.append('hide_source_news')

            index, cancelled = dialogsManager.showRowsDialogWithTitles(items)
            if cancelled:
                return
            if items[index] == 'copy_url':
                self.guiDelegate.copyUrl_(
                    args=['https://vk.com/id' + str(ownerId)])
            elif items[index] == 'report':
                self.report('post', ownerId, postId)
            elif items[index] == 'it_is_not_interesting':
                self.guiDelegate.hideOptionsNode()
                self.ignoreItem('post', ownerId, postId)
            elif items[index] == 'hide_source_news':
                self.guiDelegate.hideOptionsNode()
                self.hideSource(ownerId)
        except Exception as e:
            print('optionsTappedWithPostIdownerId exception: ' + str(e))
Ejemplo n.º 2
0
    def report(self, type, ownerId, itemId):
        response = False
        results = 0
        dialogsManager = PyDialogsManager()
        try:
            api = vk.api()
            if type == 'post':
                results = api.wall.reportPost(owner_id=ownerId, post_id=itemId)
            elif type == 'user':
                items = ['p**n', 'spam', 'insult', 'advertisment']
                index, cancelled = dialogsManager.showRowsDialogWithTitles(
                    items)
                if cancelled:
                    return
                type = items[index]
                message, cancelled = dialogsManager.showTextFieldDialogWithText(
                    'enter_report_message')
                if cancelled:
                    return
                results = api.users.report(user_id=ownerId,
                                           type=type,
                                           comment=message)
            elif type == 'photo':
                results = api.photos.report(owner_id=ownerId, photo_id=itemId)
            elif type == 'video':
                message, cancelled = dialogsManager.showTextFieldDialogWithText(
                    'enter_report_message')
                if cancelled:
                    return
                results = api.video.report(owner_id=ownerId,
                                           video_id=itemId,
                                           comment=message)
            elif type == 'post_comment':
                results = api.wall.reportComment(owner_id=ownerId,
                                                 comment_id=itemId)
            elif type == 'photo_comment':
                results = api.photos.reportComment(owner_id=ownerId,
                                                   comment_id=itemId)
            elif type == 'video_comment':
                results = api.video.reportComment(owner_id=ownerId,
                                                  comment_id=itemId)
            else:
                raise ValueError('unsupported type of item for report')
            if isinstance(results, int) and results == 1:
                response = True

        except Exception as e:
            print('posts report exception: ' + str(e))

        if response == False:
            print('report send failed with results: ' + str(results))
            dialogsManager.showDialogWithMessage('error_reporting')
        else:
            dialogsManager.showDialogWithMessage('report_sended_successfully')
            print('report sended successfully for type: ' + str(type))
        pass
Ejemplo n.º 3
0
 def exitTapped(self):
     dialogsManager = PyDialogsManager()
     index, cancelled = dialogsManager.showRowsDialogWithTitles(['settings_exit'])
     if index == 0 and not cancelled:
         analytics.log('Settings_do_exit')
         settings.set('access_token', '')
         settings.set('user_id', 0)
         vk.setToken('')
         vk.setUserId(0)
         settings.write()
         managers.shared().screensManager().showAuthorizationViewController()
Ejemplo n.º 4
0
 def optionsTappedWithVideoIdownerId(self, videoId, ownerId):
     try:
         dialogsManager = PyDialogsManager()
         items = []
         items.append('report')
         index, cancelled = dialogsManager.showRowsDialogWithTitles(items)
         if cancelled:
             return
         self.report('video', ownerId, videoId)
     except Exception as e:
         print('optionsTappedWithVideoIdownerId exception: ' + str(e))
Ejemplo n.º 5
0
 def repostObjectWithIdentifier(self, identifier):
     analytics.log('Posts_repost')
     dialogsManager = PyDialogsManager()
     index, cancelled = dialogsManager.showRowsDialogWithTitles(
         ['repost_for_friends'])
     if cancelled:
         return {}
     if index == 0:
         text, cancelled = dialogsManager.showTextFieldDialogWithText(
             'repost_enter_message')
         if cancelled:
             return {}
         return self.doRepostForFriends(identifier, text)
     return {}
Ejemplo n.º 6
0
 def tappedOnCommentWithOwnerIdcommentIdtypeparentItemOwnerId(
         self, ownerId, commentId, type, parentItemOwnerId):
     try:
         items = []
         dialogsManager = PyDialogsManager()
         items.append('report')
         if parentItemOwnerId == vk.userId():
             items.append('comment_delete')
         index, cancelled = dialogsManager.showRowsDialogWithTitles(items)
         if cancelled:
             return
         if index == 0:
             self.report(type, ownerId, commentId)
         elif index == 1:
             self.deleteComment(type, ownerId, commentId, parentItemOwnerId)
     except Exception as e:
         print('tappedOnCommentWithOwnerIdcommentId exception: ' + str(e))
Ejemplo n.º 7
0
 def optionsTappedWithUserId(self, userId):
     try:
         dialogsManager = PyDialogsManager()
         items = []
         if userId > 0:
             items.append('report')
         items.append('block_user')
         index, cancelled = dialogsManager.showRowsDialogWithTitles(items)
         if cancelled:
             return
         if index == 0 and userId > 0:
             self.report('user', userId, 0)
         else:
             userData = users.getShortUserById(userId)
             first_name = userData.get('first_name')
             last_name = userData.get('last_name')
             if userId < 0:
                 first_name = userData.get('name')
             userName = ""
             if not isinstance(first_name, str) and not isinstance(
                     last_name, str):
                 print('name not defined for userData: ' +
                       json.dumps(userData, indent=4))
                 return
             elif isinstance(first_name, str) and isinstance(
                     last_name, str):
                 userName = first_name + ' ' + last_name
             elif isinstance(first_name, str):
                 userName = first_name
             else:
                 userName = last_name
             locString = self.guiDelegate.localize_(
                 args=['are_you_sure_for_block_username'
                       ], withResult=True) + userName + '?'
             index, cancelled = dialogsManager.showYesNoDialogWithMessage(
                 locString, "ban_user_button", "cancel")
             if cancelled == True:
                 return
             self.blockUser(userId)
     except Exception as e:
         print('optionsTappedWithUserId exception: ' + str(e))
         print(traceback.format_exc())
Ejemplo n.º 8
0
 def friendButtonTapped(self, friend_status):
     analytics.log('Wall_friend_Button')
     response = {}
     try:
         api = vk.api()
         if self.userId < 0:
             # работа с группой
             return self.joinOrLeaveGroup(friend_status)
         elif friend_status == 1 or friend_status == 3:
             if friend_status == 3:
                 # Пользователь друг или есть входящая заявка
                 dialogsManager = PyDialogsManager()
                 index, cancelled = dialogsManager.showRowsDialogWithTitles(['delete_from_friends'])
                 if cancelled:
                     return -1
             response = api.friends.delete(user_id=self.userId)
             print('friends.delete response: ' + str(response))
             if response.get('success') == 1:
                 return 5 if friend_status == 3 else 0
             return -1
         response = api.friends.add(user_id=self.userId)
     except Exception as e:
         print('wallviewmodel.py friendButtonTapped exception: ' + str(e))
     return response