def cmd(api, message, args): for_all = None if message['from_id'] == message['peer_id'] else True if message.get('reply_message') is not None: target = api.users.get(user_ids=message['reply_message']['from_id']) else: try: target = api.users.get(user_ids=functions.getUserId(args[1])) except: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['error']} Необходимо ответить на сообщение пользователя или указать на него ссылку: /uid [пользователь]" ) time.sleep(3) api.messages.delete(message_ids=message['id'], delete_for_all=for_all) return api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['success']} ID пользователя: {target[0]['id']}")
def cmd(api, message, args, owner_id): for_all = None if message['from_id'] == message['peer_id'] else True if message.get('reply_message') is not None: target = api.users.get(user_ids=message['reply_message']['from_id']) else: try: target = api.users.get(user_ids=functions.getUserId(args[1])) except: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['error']} Необходимо ответить на сообщение пользователя или указать на него ссылку: /ignore [пользователь]" ) time.sleep(3) api.messages.delete(message_ids=message['id'], delete_for_all=for_all) return ignored_users = functions.getData('ignore') if ignored_users is None: ignored_users = [] target = target[0] if target['id'] in ignored_users: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['invalid']} [id{target['id']}|{target['first_name']} {target['last_name']}] уже игнорируется." ) return if owner_id == target['id']: api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message="❌ Нельзя игнорировать самого себя!") return ignored_users.append(target['id']) edit = functions.editData('ignore', ignored_users) if edit: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['success']} [id{target['id']}|{target['first_name']} {target['last_name']}] теперь будет игнорироваться!" ) else: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"Пользователя {config.prefixes['error']} [id{target['id']}|{target['first_name']} {target['last_name']}] не получилось отправить в игнор. Возможно данные повреждены." ) return
def cmd(api, message, args): for_all = None if message['from_id'] == message['peer_id'] else True if message.get('reply_message') is not None: target = api.users.get(user_ids=message['reply_message']['from_id']) else: try: target = api.users.get(user_ids=functions.getUserId(args[1])) except: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['error']} Необходимо ответить на сообщение пользователя или указать на него ссылку: /unban [пользователь]" ) time.sleep(3) api.messages.delete(message_ids=message['id'], delete_for_all=for_all) return banned = functions.getData('banned') if banned is None: banned = [] target = target[0] if not (target['id'] in banned): api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['invalid']} [id{target['id']}|{target['first_name']} {target['last_name']}] не заблокирован." ) return banned.remove(target['id']) edit = functions.editData('banned', banned) if edit: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['success']} [id{target['id']}|{target['first_name']} {target['last_name']}] был разблокирован!" ) else: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['error']} Пользователя [id{target['id']}|{target['first_name']} {target['last_name']}] не получилось разблокировать. Возможно данные повреждены." ) return
def cmd(api, message, args): for_all = None if message['from_id'] == message['peer_id'] else True if message.get('reply_message') is not None: target = api.users.get(user_ids=message['reply_message']['from_id']) else: try: target = api.users.get(user_ids=functions.getUserId(args[1])) except: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['error']} Необходимо ответить на сообщение пользователя или указать на него ссылку: /unignore [пользователь]" ) time.sleep(3) api.messages.delete(message_ids=message['id'], delete_for_all=for_all) return ignored_users = functions.getData('ignore') if ignored_users is None: ignored_users = [] target = target[0] if not (target['id'] in ignored_users): api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['invalid']} [id{target['id']}|{target['first_name']} {target['last_name']}] не игнорируется." ) return ignored_users.remove(target['id']) edit = functions.editData('ignore', ignored_users) if edit: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"{config.prefixes['success']} [id{target['id']}|{target['first_name']} {target['last_name']}] был удалён из списка игнорируемых!" ) else: api.messages.edit( peer_id=message['peer_id'], message_id=message['id'], message= f"Пользователя {config.prefixes['error']} [id{target['id']}|{target['first_name']} {target['last_name']}] не получилось удалить из списка игнорируемых. Возможно данные повреждены." ) return
def cmd(api, message, args, owner_id): try: if message.get('reply_message') is not None: user_id = message['reply_message']['from_id'] else: user_id = functions.getUserId(args[1]) target = api.users.get(user_ids=user_id) target = target.pop() except: api.messages.send( random_id=0, peer_id=message['peer_id'], message= f"{config.prefixes['error']} Необходимо ответить на сообщение пользователя или указать на него ссылку: /tc [пользователь]", reply_to=message['id']) return tester_info = ujson.decode( requests.get( f"https://ssapi.ru/vk-bugs-api/?method=getReporter&reporter_id={target['id']}" ).text) if tester_info.get('error') is True: api.messages.send( peer_id=message['peer_id'], random_id=0, message= f"{config.prefixes['error']} Ошибка при обращении к API: {tester_info.get('error_msg')}", reply_to=message['id'], disable_mentions=True) else: tester_info = tester_info.get('response').get('reporter') if not tester_info.get('tester'): api.messages.send( peer_id=message['peer_id'], random_id=0, message= f"{config.prefixes['success_no']} [id{target['id']}|{target['first_name']} {target['last_name']}] не тестировщик из [testpool|/testpool].", reply_to=message['id'], disable_mentions=True) else: api.messages.send( peer_id=message['peer_id'], random_id=0, message= f"{config.prefixes['success']} [id{target['id']}|{target['first_name']} {target['last_name']}] тестировщик из [testpool|/testpool].\n\n• {tester_info.get('status_text')}\n• Количество отчётов: {tester_info.get('reports_count')}\n• Место в топе: {tester_info.get('top_position')}\n\nhttps://vk.com/bugs?act=reporter&id={target['id']}", reply_to=message['id'], disable_mentions=True) return
def post(s, form, args): page = "/viewthread?t={}".format(args["t"]) from functions import checkLogin # Redirect if not logged in if not checkLogin(s.headers): return "/login" # Import needed functions from functions import getUsername from functions import getUserId from functions import checkFieldsBlank # Make sure values entered are alright fields = ["message"] if checkFieldsBlank(form, fields): return page db = getMongoClient() # Get Collections colForums = db.forums colThreads = db.threads colPosts = db.posts # Insert reply into database reply = {"thread": ObjectId(args["t"]), "author": getUserId(getUsername(s.headers)), "content": formatPost(form["message"].value), "time": time.time()} post_id = colPosts.insert(reply) # Update replies and posts counts thread = colThreads.find_one({"_id": ObjectId(args["t"])}) colThreads.update({"_id": ObjectId(args["t"])}, {"$inc": {"numReplies": 1}}, upsert=False, multi=False) colForums.update({"_id": thread["forum"]}, {"$inc": {"numPosts": 1}}, upsert=False, multi=False) # Get and increase bump number for forum, update bump number for thread colForums.update({"_id": thread["forum"]}, {"$inc": {"bump": 1}}, upsert=False, multi=False) forum = colForums.find_one({"_id": thread["forum"]}) colThreads.update({"_id": ObjectId(args["t"])}, {"$set": {"bumpNum": forum["bump"]}}, upsert=False, multi=False) # Update last posts in forum and thread colForums.update({"_id": thread["forum"]}, {"$set": {"lastPost": post_id}}, upsert=False, multi=False) colThreads.update({"_id": ObjectId(args["t"])}, {"$set": {"lastPost": post_id}}, upsert=False, multi=False) return page
def post(s, form, args): page = "/posting?f={}".format(args["f"]) # Make sure values entered are alright from functions import checkFieldsBlank fields = ["subject", "message"] if checkFieldsBlank(form, fields): return page # Import needed functions from functions import checkLogin import time import datetime # Redirect if not logged in if not checkLogin(s.headers): return "/login" from functions import getUsername from functions import getUserId # Connect to Mongo DB client = MongoClient("mongodb://localhost:27017/") db = client.db # Get Collections colForums = db.forums colThreads = db.threads colPosts = db.posts # Get username username = getUsername(s.headers) userId = getUserId(username) # Get and increase bump number for forum colForums.update({"_id": ObjectId(args["f"])}, {"$inc": {"bump": 1}}, upsert=False, multi=False) forum = colForums.find_one({"_id": ObjectId(args["f"])}) bump = forum["bump"] # Insert thread into database thread = {"forum": ObjectId(args["f"]), "title": form["subject"].value, "author": userId, "numReplies": 0, "numViews": 0, "bumpNum": bump} thread_id = colThreads.insert(thread) # Insert first post into database post = {"thread": thread_id, "author": userId, "content": formatPost(form["message"].value), "time": time.time()} post_id = colPosts.insert(post) # Update threads and posts counts colForums.update({"_id": ObjectId(args["f"])}, {"$inc": {"numPosts": 1}}, upsert=False, multi=False) colForums.update({"_id": ObjectId(args["f"])}, {"$inc": {"numThreads": 1}}, upsert=False, multi=False) # Update last posts in forum and thread colForums.update({"_id": ObjectId(args["f"])}, {"$set": {"lastPost": post_id}}, upsert=False, multi=False) colThreads.update({"_id": thread_id}, {"$set": {"lastPost": post_id}}, upsert=False, multi=False) return "/viewthread?t={}".format(thread_id)