def __init__( self, cookie_predicate=None, # Used to filter cookies before setting href resets_ip=True, # Whether or not to reset IP before setting href uses_tor=True): super().__init__() self.identifier = uuid4().hex self.logger = LoggerFactory.create("BROWSER_{}".format( self.identifier)) self.uses_tor = uses_tor self.resets_ip = resets_ip self.cookie_predicate = cookie_predicate # Predicate to filter cookies self._last_wakes = {} self.driver = None self.tor_process = None self.port = None self.control_port = None self.open()
def __init__(self): self.logger = LoggerFactory.create(self.service_name) self.queue_connection = QueueConnection()
def __init__(self, username=None, password=None, host=None, port=None): self.username = username self.password = password self.mail = imaplib.IMAP4_SSL(host=host, port=port) self.logger = LoggerFactory.create("MAILBOX ({})".format( self.username))
def __init__(self): self.logger = LoggerFactory.create("QueueConnection_{}".format( id(self))) self.threads = [] self.thread_queue = queue.Queue() self.active_connections = []
from django.template.loader import render_to_string from django.utils import timezone from bakround_applicant.all_models.db import Profile, EmployerUser, EmployerJob, EmployerCandidate, \ EmployerJobUser, EmployerCandidateResponse, Notification, \ Job, JobFamily, ProfileReverseLookup, ProfileEmail, \ EmployerCandidateStatus, Employer, ProfileResume, \ NotificationRecipient from bakround_applicant.utilities.functions import get_website_root_url, is_production, is_dev from bakround_applicant.utilities.logger import LoggerFactory from bakround_applicant.services.verifyingservice.util import collect_contact_info_for_profile, add_contact from ..queue import QueueConnection, QueueNames from .exceptions import UnspecifiedRecipientException, EmailNotFoundException, UnverifiedNameException logger = LoggerFactory.create("NOTIFICATION_UTIL") ### Generic utilities def queue_notification(_id, resend=None): message = {"notification_id": _id} if resend is not None: message['resend'] = resend QueueConnection.quick_publish(QueueNames.notification_service, json.dumps(message)) def get_bcc_address(): if is_production(): return '*****@*****.**'
import re import json from .email import Mailbox, EmailMessage, IMAPError from .models import ExternalResponse from bakround_applicant.utilities.logger import LoggerFactory from bakround_applicant.employer.utils import handle_candidate_accept from bakround_applicant.all_models.db import EmployerCandidate # Right now, this only watches Gmail for new emails and saves them. # # Indeed will send us an email with X-Indeed-Content-Type: contacted-decline from `[email protected]` when a candidate rejects. # Indeed will send us an email to *@indeedemail.com when a candidate accepts. logger = LoggerFactory.create("watch_for_indeed_emails()") GUID_REGEX = re.compile( r'[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}') def find_guid(s): if not s: return None global GUID_REGEX employer_candidate_id = list(GUID_REGEX.findall(s)) or None if employer_candidate_id: employer_candidate_id = employer_candidate_id[-1] or None return employer_candidate_id
from ..profile.profile_search import make_queryset_of_search_profiles, get_location_for_city from ..all_models.db import LookupState, EmployerCandidateQueue, EmployerSavedSearch, \ Profile, EmployerJob, Employer, EmployerCandidate, \ EmployerSearchResult, EmployerRestrictedProfile, EmployerJobUser from ..utilities.functions import take_n_at_a_time from django.utils import timezone from datetime import timedelta import uuid from bakround_applicant.notifications import emails from ..services.notificationservice.util import send_email_to_candidate from bakround_applicant.utilities.logger import LoggerFactory logger = LoggerFactory.create('CANDIDATE_QUEUE') from django.db import transaction def get_search_profiles_to_insert_into_queue(employer_job, saved_search, profile_update_cutoff_date): params = saved_search.search_parameters location = get_location_for_city(employer_job.city, employer_job.state) minimum_score = params.get('score') if minimum_score is None or minimum_score < 550: minimum_score = 550 search_profile_queryset = make_queryset_of_search_profiles(
def __init__(self): self.logger = LoggerFactory.create("WEEKLY_STATS")
__author__ = "tplick" import json from bakround_applicant.services.queue import QueueConnection, QueueNames from bakround_applicant.utilities.logger import LoggerFactory logger = LoggerFactory.create('EVENT_SERVICE') class EventActions: resume_upload = 'resume_upload' profile_edit = 'profile_edit' profile_printview_generate = 'profile_printview_generate' profile_external_viewer_add = 'profile_external_viewer_add' profile_external_viewer_remove = 'profile_external_viewer_remove' score_regeneration_request = 'score_regeneration_request' score_analysis_view = 'score_analysis_view' employer_job_create = 'employer_job_create' employer_job_update = 'employer_job_update' employer_job_export = 'employer_job_export' employer_job_candidate_add = 'employer_job_candidate_add' employer_job_candidate_contact = 'employer_job_candidate_contact' employer_job_candidate_remove = 'employer_job_candidate_remove' employer_job_closed = 'employer_job_closed' employer_job_reopened = 'employer_job_reopened' employer_job_search = 'employer_job_search' employer_profile_view = 'employer_profile_view' employer_user_create = 'employer_user_create' employer_user_delete = 'employer_user_delete'
def __init__(self, *args, **kwargs): self.logger = LoggerFactory.create(type(self).__name__) for k, v in kwargs.items(): setattr(self, k, v)
def __init__(self, level=logging.DEBUG): super().__init__(level) self.logger = LoggerFactory.create('') self.level = level
from django.db.models.aggregates import Count, Sum from django.utils import timezone from django.core.exceptions import EmptyResultSet from ..all_models.db import Profile, ProfileExperience, Score, \ LookupCountry, LookupState, LookupDegreeType, \ ProfileEducation, LookupPhysicalLocation, Skill, Job, \ EmployerUser, EmployerJob, EmployerCandidate, EmployerSavedSearch, \ EmployerSearchResult, EmployerRestrictedProfile, EmployerProfileView, \ EmployerCandidateFeedback, IcimsJobData, IcimsProfileJobMapping from ..all_models.dto import ProfileSearchQuerySchema, IcimsProfileSearchQuerySchema from ..event import record_event, EventActions from ..utilities.functions import take_n_at_a_time, get_website_root_url, is_production, is_dev from bakround_applicant.utilities.logger import LoggerFactory logger = LoggerFactory.create('PROFILE_SEARCH') MAX_RESULTS = 2000 INTERNAL_PAGE_SIZE = 10 assert MAX_RESULTS % INTERNAL_PAGE_SIZE == 0 INTERNAL_MAX_PAGES = MAX_RESULTS // INTERNAL_PAGE_SIZE MULTI_MATCH_FIELDS = [ "summary", "experience.company_name", "experience.position_title", "experience.position_description", "skills.skill_name", "certifications.certification_name", ]