def _clean(cls, user): DialogSearchManager(user_id=user.id).clean() SearchManager(user_id=user.id).clean() JobManager(user_id=user.id).clean() DialogJobManager(user_id=user.id).clean() DialogResumeManager(user_id=user.id).clean() ResumeManager(user_id=user.id).clean()
def send_categories(self, user, text): if user.profile == 1: JobManager(user_id=user.id).clean() dialog = DialogJobManager(user_id=user.id) dialog.clean() dialog.create() elif user.profile == 2: ResumeManager(user_id=user.id).clean() dialog = DialogResumeManager(user_id=user.id) dialog.clean() dialog.create() else: print(__name__, 'send cat') text = self.text.send_categories() if self.check_search_city(user=user): reply_markup = self.markup.send_categories(search=True) else: reply_markup = self.markup.send_categories() try: self.edit_message_text(text=text, reply_markup=reply_markup) except ApiException: self.send_message(text=text, reply_markup=reply_markup)
def search_response(self, user, text): search = SearchManager(user_id=user.id).get() results = [] if search: jobs = JobManager(user_id=user.id).get_vacations(search) markup = InlineKeyboardMarkup() markup.add( InlineKeyboardButton(text='◀️ Назад', switch_inline_query_current_chat='#jobs')) for job in jobs: text = f'<b>{job.looking_for}</b>\n\n' \ f'<b>Зарплата:</b> {job.wage}\n\n' \ f'<b>Город:</b> ' \ f'{job.city if job.city else "Отдаленная работа"}\n\n' \ f'<b>Опыт работы:</b> {job.experience}\n\n' \ f'<b>Описание вакансии:</b> {job.description}\n\n' \ f'<b>Написать работодателю:</b> {job.write_to_employer}' # noqa results.append( InlineQueryResultArticle( id=job.id, title=job.looking_for, description= f'{job.wage}\n{job.city if job.city else "Отдаленная работа"}', # noqa input_message_content=InputTextMessageContent( message_text=text, parse_mode='HTML'), thumb_url= 'https://telegra.ph/file/c5edf06f95fc5e4bda351.jpg', # noqa thumb_height=30, thumb_width=30, reply_markup=markup)) if results: return self.answer_inline_query(results=results)
def view_vacations(self, user, text): vacation_id = text.split(':')[-1] vacancy = JobManager(user_id=user.id).get_vacation_for_id( vacation_id=vacation_id) text = self.text.view_vacations(vacancy=vacancy) markup = self.markup.view_vacations(vacancy=vacancy) return self.edit_message_text(text=text, reply_markup=markup)
def complete_send(self, user, text): send = SendManager(user_id=user.id).sender() if not send: return self.send_message(text='резюме не найдено') job = JobManager(user_id=user.id).job(send.resume_id) candidate = send.candidates.replace('[', '') candidate = candidate.replace(']', '') candidate = candidate.split(',') # update balance credit = float(user.credit) - (float(send.count) * 0.02) if credit <= 0: return self.send_message(text='недостаточно средств') UserManager(user_id=self.user_id).update_credit(credit=credit) self.send_to(candidate[:send.count], job) SendManager.delete(user.id) text = self.text.complete_send() return self.send_message(text=text)
def publish(self, user, text): if user.profile == 1: JobManager(user_id=user.id).publish() if not user.free_send: UserManager(user_id=user.id).free_send() _text = self.text.free_send() self.send_message(text=_text) job_id = text.split('free:')[-1] job = JobManager(user_id=user.id).job(job_id) resumes = ResumeManager(user_id=self.user_id).search_resume( city=job.city, category=job.category, posistion=job.position) if not resumes: text = self.text.not_jobs() return self.send_message(text=text) candidates = [ i.user.user_id for i in resumes if i.user.user_id != self.user_id ] self.send_to(candidates[:10], job) text = self.text.top_up_account(balance=user.credit) markup = self.markup.my_score() return self.send_message(text=text, reply_markup=markup) else: price = 0.02 if float(user.credit) < price: text = self.text.top_up_account(balance=user.credit) markup = self.markup.my_score() return self.send_message(text=text, reply_markup=markup) else: text = self.text.why_send() return self.send_message(text=text) elif user.profile == 2: text = self.text.publish(user) ResumeManager(user_id=user.id).publish() return self.send_message(text=text)
def moderation(self, text, user): JobManager(user_id=user.id).update_write_to_employer( write_to_employer=text) DialogJobManager(user_id=user.id).clean() text = self.text.moderation() self.send_message(text=text) if hasattr(user, 'username') and user.username: name = user.username else: name = user.id return self.send_message(user_id=652287516, text=f'Появилася нова вакансія\n{name}')
def send_sub_category(self, category, user): if user.profile == 1: JobManager(user_id=user.id).create(category=category) DialogJobManager(user_id=user.id).update_category() elif user.profile == 2: ResumeManager(user_id=user.id).create(category=category) DialogResumeManager(user_id=user.id).update_category() else: print(__name__, 'send sub cat') text = self.text.send_sub_category() if self.check_search_category(user=user): reply_markup = self.markup.send_sub_category(category, search=True) else: reply_markup = self.markup.send_sub_category(category) return self.edit_message_text(text=text, reply_markup=reply_markup)
def found_candidates(self, user, text): job_id = text.split('send:')[-1] job = JobManager(user_id=user.id).job(job_id) resumes = ResumeManager(user_id=self.user_id).search_resume( city=job.city, category=job.category, posistion=job.position) if not resumes: text = self.text.not_jobs() return self.send_message(text=text) candidates = [i.user.user_id for i in resumes] SendManager(user_id=user.id).create(job_id, candidates) balance = UserManager(user_id=self.user_id).get_score() text = self.text.found_candidates(len(resumes), balance) return self.send_message(text=text)
def my_vacations(self, user, text): SendManager.delete(user.id) vacations = JobManager(user_id=user.id).get_vacations() if vacations: text = self.text.my_vacations() markup = self.markup.my_vacations(vacations=vacations) if text and markup.keyboard: try: self.edit_message_text(text=text, reply_markup=markup) except ApiException as error: print(str(error)) self.send_message(text=text, reply_markup=markup) else: text = self.text.my_vacation_on_moderation() self.send_message(text=text) else: text = self.text.my_vacation_on_moderation() self.send_message(text=text)
def write_to_employer(self, text, user): JobManager(user_id=user.id).update_description(description=text) DialogJobManager(user_id=user.id).write_to_employer() text = self.text.write_to_employer() reply_markup = self.markup.write_to_employer() return self.send_message(text=text, reply_markup=reply_markup)
def description(self, text, user): JobManager(user_id=user.id).update_experience(experience=text) DialogJobManager(user_id=user.id).description() text = self.text.description() return self.send_message(text=text)
def experience(self, text, user): JobManager(user_id=user.id).update_city(city=text) DialogJobManager(user_id=user.id).experience() text = self.text.experience() markup = self.markup.experience() return self.send_message(text=text, reply_markup=markup)
def city(self, text, user): JobManager(user_id=user.id).update_wage(wage=text) DialogJobManager(user_id=user.id).city() text = self.text.city() markup = self.markup.city() return self.send_message(text=text, reply_markup=markup)
def wage(self, text, user): JobManager(user_id=user.id).update_looking_for(looking_for=text) DialogJobManager(user_id=user.id).wage() text = self.text.wage() return self.send_message(text=text)
def looking_for(self, position, user): JobManager(user_id=user.id).update_position(position=position) DialogJobManager(user_id=user.id).looking_for() text = self.text.looking_for() return self.send_message(text=text)
def delete_vacations(self, user, text): vacation_id = text.split(':')[-1] JobManager(user_id=user.id).delete_vacations(vacation_id=vacation_id) return self.my_vacations(user=user, text=text)
def update_vacations(self, user, text): vacation_id = text.split(':')[-1] JobManager(user_id=user.id).update_vacations(vacation_id=vacation_id) return self.view_vacations(user=user, text=text)