Esempio n. 1
0
 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()
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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)
Esempio n. 6
0
    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)
Esempio n. 7
0
    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}')
Esempio n. 8
0
    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)
Esempio n. 9
0
    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)
Esempio n. 10
0
    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)
Esempio n. 11
0
 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)
Esempio n. 12
0
 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)
Esempio n. 13
0
 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)
Esempio n. 14
0
 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)
Esempio n. 15
0
 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)
Esempio n. 16
0
 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)
Esempio n. 17
0
 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)
Esempio n. 18
0
 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)