def start_conversation(media, user_id, user_contact_link=''): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) else: if user.is_moderator: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_GREETING, media=media, language=user.language[media])) user.set_state(media, States.MODERATION_MAIN_MENU, moderation=True) else: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response
def get_all_tags(media, user_id): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response tags = sorted(Tag.get_all_tags(), key=lambda x: not x.is_shown) marks = {True: '+', False: '-'} tags_strings = [marks[t.is_shown] + ' ' + t.code for t in tags] message_text = load_text( TextLabels.MODERATION_GET_ALL_TAGS, media=media).format(tags='\n'.join(tags_strings)) if media == Media.TELEGRAM: message_text = message_text.replace('_', '\_') new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response
def get_all_requests_csv(media, user_id): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response file = Request.create_csv_file() first_message = Message( user_id, text=load_text(TextLabels.MODERATION_GET_ALL_REQUESTS_DATA, media=media)) second_message = Message(user_id, text=None, file=file) response = {'send': list([first_message, second_message])} return response
def get_tag_info(media, user_id, code): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response if not code: new_message = Message(user_id, text=load_text( TextLabels.WRONG_COMMAND_SIGNATURE, media=media)) response = {'send': list([new_message])} return response try: tag = Tag(code=code) except TagNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_WRONG_TAG_CODE, media=media)) response = {'send': list([new_message])} return response marks = {True: 'да', False: 'нет'} message_text = load_text(TextLabels.MODERATION_GET_TAG_INFO, media=media) lang_args = {l.name.lower(): tag.text[l] for l in Languages} print(lang_args) message_text = message_text.format(code=tag.code, is_shown=marks[tag.is_shown], **lang_args) if media == Media.TELEGRAM: message_text = message_text.replace('_', '\_') new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response
def unregistered(media, user_id): new_message = Message(user_id, text=load_text(TextLabels.CREATION_UNREGISTERED, media=media), marks=list([MessageMarks.UNREGISTERED])) response = {'send': list([new_message])} return response
def change_tag_condition(media, user_id, code): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response if not code: new_message = Message(user_id, text=load_text( TextLabels.WRONG_COMMAND_SIGNATURE, media=media)) response = {'send': list([new_message])} return response try: tag = Tag(code=code) except TagNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_WRONG_TAG_CODE, media=media)) response = {'send': list([new_message])} return response new_state = tag.switch_state() marks = {True: 'показывается', False: 'не показывается'} message_text = load_text(TextLabels.MODERATION_TAG_STATE_SWITCHED, media=media) message_text = message_text.format(code=tag.code, state=marks[new_state]) if media == Media.TELEGRAM: message_text = message_text.replace('_', '\_') new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response
def no_access(media, user_id): new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media), marks=list([MessageMarks.NO_ACCESS])) response = {'send': list([new_message])} return response
def delete_tag(media, user_id, code): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response if not code: new_message = Message(user_id, text=load_text( TextLabels.WRONG_COMMAND_SIGNATURE, media=media)) response = {'send': list([new_message])} return response try: tag = Tag(code) except TagNotFound: message_text = load_text(TextLabels.MODERATION_WRONG_TAG_CODE, media=media) else: tag.delete() message_text = load_text(TextLabels.MODERATION_TAG_DELETED, media=media).format(tag=tag.code) if media == Media.TELEGRAM: message_text = message_text.replace('_', '\_') new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response
def start_conversation(media, user_id, user_contact_link=''): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.CREATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) else: new_message = Message( user_id, text=load_text(TextLabels.CREATION_MAIN_MENU_GREETING, media=media, language=user.language[media]), keyboard=Keyboard(state=States.CREATION_MAIN_MENU, language=user.language.get( media, Languages.RU))) user.set_state(media, States.CREATION_MAIN_MENU, creation=True) user.clear_edited_draft_field(media=media) response = {'send': list([new_message])} return response
def withdraw_status(media, user_id, user_to_withdraw, moderator=False, admin=False): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response if not user_to_withdraw: new_message = Message(user_id, text=load_text( TextLabels.WRONG_COMMAND_SIGNATURE, media=media)) response = {'send': list([new_message])} return response try: new_moderator = User(base_id=user_to_withdraw) if moderator: new_moderator.withdraw_moderator() elif admin: new_moderator.withdraw_admin() except UserNotFound: message_text = load_text(TextLabels.MODERATION_INVALID_USER_ID, media=media) else: if moderator: message_text = load_text( TextLabels.MODERATION_M_STATUS_ASSIGNED, media=media).format(user=user.name) elif admin: message_text = load_text( TextLabels.MODERATION_A_STATUS_ASSIGNED, media=media).format(user=user.name) else: return new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response
def into_draft_text(self, language, media=Media.TELEGRAM): not_stated = self.FEATURES_FOR_DRAFT_FORMAT['not_stated'][ language.name] text = load_text(TextLabels.CREATION_REQUEST_DRAFT, media=media, language=language) if self.__dict__.get('date_type', None): date_type = self.FEATURES_FOR_DRAFT_FORMAT['date_type_name'][ self.date_type.name][language.name] else: date_type = not_stated if self.__dict__.get('date1', None): if self.date_type == DateType.PERIOD: if self.__dict__.get('date2', None): date = self.date1.strftime( '%d.%m.%Y') + ' – ' + self.date1.strftime('%d.%m.%Y') else: date = self.date1.strftime('%d.%m.%Y') + ' – ' + not_stated else: date = self.date1.strftime('%d.%m.%Y') else: date = not_stated if self.__dict__.get('tags', None): tags = ', '.join([t.get_text(language) for t in self.tags]) else: tags = not_stated data = { 'name': self.name if self.__dict__.get('name', None) else not_stated, 'text': self.text if self.__dict__.get('text', None) else not_stated, 'date_type': date_type, 'date': date, 'people_number': self.people_number if self.__dict__.get('people_number', None) else not_stated, 'tags': tags } res_text = text.format(**data).strip() return res_text
def add_tag(media, user_id, code, languages): try: user = User(media=media, user_id=user_id) except UserNotFound: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_UNREGISTERED, media=media), marks=[MessageMarks.UNREGISTERED]) response = {'send': list([new_message])} return response if not user.is_admin: new_message = Message(user_id, text=load_text( TextLabels.MODERATION_ACCESS_DENIED, media=media, language=user.language[media]), marks=[MessageMarks.NO_ACCESS]) response = {'send': list([new_message])} return response if not code or not languages or None in languages.values(): new_message = Message(user_id, text=load_text( TextLabels.WRONG_COMMAND_SIGNATURE, media=media)) response = {'send': list([new_message])} return response try: tag = Tag.new(code, languages) except TagCodeValueError: message_text = load_text( TextLabels.MODERATION_TAG_CODE_VALUE_ERROR, media=media) except TagNotAllLanguages: message_text = load_text( TextLabels.MODERATION_TAG_NOT_ALL_LANGUAGES, media=media) except TagDuplicateValue: message_text = load_text(TextLabels.MODERATION_TAG_DUPLICATE_VALUE, media=media) else: message_text = load_text(TextLabels.MODERATION_TAG_ADDED, media=media).format(tag=tag.code) if media == Media.TELEGRAM: message_text = message_text.replace('_', '\_') new_message = Message(user_id, text=message_text) response = {'send': list([new_message])} return response