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))
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
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()
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))
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 {}
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))
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())
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