removed indeed handler and used the default

pull/231/head
Yariv Menachem 2024-12-31 18:12:37 +02:00
parent 005d504538
commit 38df40f0f6
3 changed files with 7 additions and 45 deletions

View File

@ -1,12 +1,11 @@
import os
from pymongo import MongoClient
from telegram import Update
from telegram.ext import Application, CommandHandler, CallbackQueryHandler
from jobspy.scrapers.site import Site
from jobspy.scrapers.utils import create_logger
from telegram_handler import TelegramIndeedHandler, TelegramDefaultHandler
from telegram_handler import TelegramDefaultHandler
from telegram_handler.button_callback.telegram_callback_handler import TelegramCallHandler
logger = create_logger("Main")
@ -50,9 +49,10 @@ if __name__ == "__main__":
application.add_handler(CommandHandler(
Site.LINKEDIN.value, tg_handler_linkedin.handle))
# Indeed
tg_handler_indeed = TelegramIndeedHandler(locations=locations,
title_filters=title_filters,
search_term=search_term)
tg_handler_indeed = TelegramDefaultHandler(sites=[Site.INDEED],
locations=locations,
title_filters=title_filters,
search_term=search_term)
application.add_handler(CommandHandler(
Site.INDEED.value, tg_handler_indeed.handle))
application.add_handler(CallbackQueryHandler(

View File

@ -60,7 +60,8 @@ class TelegramDefaultHandler(TelegramHandler):
locations=self.locations,
results_wanted=200,
hours_old=48,
filter_by_title=self.title_filters
filter_by_title=self.title_filters,
country_indeed = 'israel'
)
self.logger.info(f"Found {len(jobs)} jobs")
self.jobRepository.insert_many_if_not_found(filtered_out_jobs)

View File

@ -1,39 +0,0 @@
from telegram import Update
from telegram.ext import (
ContextTypes,
)
from db.job_repository import JobRepository
from jobspy import Site, scrape_jobs
from jobspy.scrapers.utils import create_logger
from telegram_bot import TelegramBot
from telegram_handler.telegram_handler import TelegramHandler
class TelegramIndeedHandler(TelegramHandler):
def __init__(self, locations: list[str], title_filters: list[str], search_term: str):
self.sites_to_scrap = [Site.INDEED]
self.locations = locations
self.search_term = search_term
self.title_filters = title_filters
self.telegramBot = TelegramBot()
self.jobRepository = JobRepository()
self.logger = create_logger(
f"Telegram{self.sites_to_scrap[0].name.title()}Handler")
async def handle(self, update: Update, context: ContextTypes.DEFAULT_TYPE):
self.logger.info("start handling")
filtered_out_jobs, jobs = scrape_jobs(
site_name=self.sites_to_scrap,
search_term=self.search_term,
locations=self.locations,
results_wanted=200,
hours_old=48,
country_indeed='israel',
filter_by_title=self.title_filters
)
self.logger.info(f"Found {len(jobs)} jobs")
new_jobs = self.jobRepository.insert_many_if_not_found(jobs)
for newJob in new_jobs:
await self.telegramBot.send_job(newJob)
self.logger.info("finished handling")