Spaces:
Sleeping
Sleeping
File size: 6,151 Bytes
f1c202b cc8ed94 f1c202b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 |
import gradio as gr
from module import generate_resume_urls
import os
import tempfile
import shutil
def write_result_to_file(result, filename="result.txt"):
# Create temp folder
result = "\n\n".join(result)
temp_dir = tempfile.mkdtemp()
# Write result to file
with open(os.path.join(temp_dir, filename), "w") as f:
f.write(result)
f.close()
return os.path.join(temp_dir, filename)
def get_links(job_search_status_enable,gender_enable,salary_enable,education_level_enable,experience_enable,age_enable,
links,use_filters,use_inc_values,job_search_status,gender,age_from,age_to,salary_from,salary_to,education_level,experience):
result_links = []
cout_slogan = "Кол-во ссылок: "
links_list = links.split("\n")
# Remove empy elemts from links_list
links_list = [link for link in links_list if link]
if not use_filters:
for link in links_list:
result = generate_resume_urls(link)
result_links += result
cout_slogan = cout_slogan + str(len(result_links))
return write_result_to_file(result_links),cout_slogan
# When use_filters is True
else:
selected_filters = []
filter_values = {}
for link in links_list:
if age_enable:
selected_filters.append("age")
# print(age_from,age_to)
filter_values["age"] = list(range(age_from,age_to))
diffrence = age_to - age_from
if diffrence <= 0:
filter_values["age"].append(age_from)
else:
filter_values["age"].append(age_to)
if job_search_status_enable:
selected_filters.append("job_search_status")
print(job_search_status)
filter_values["job_search_status"] = job_search_status
if gender_enable:
selected_filters.append("gender")
filter_values["gender"] = gender
if salary_enable:
selected_filters.append("salary")
filter_values["salary_from"] = salary_from
filter_values["salary_to"] = salary_to
if education_level_enable:
selected_filters.append("education_level")
filter_values["education_level"] = education_level
if experience_enable:
selected_filters.append("experience")
filter_values["experience"] = experience
for link in links_list:
result = generate_resume_urls(link, selected_filters, filter_values, use_inc_values)
result_links += result
cout_slogan = cout_slogan + str(len(result_links))
return write_result_to_file(result_links),cout_slogan
with gr.Blocks() as demo:
gr.Markdown("# Web-интерфейс настройки правил фильтрации Модуля контроля")
with gr.Row():
links = gr.TextArea(label="Введите ссылки",placeholder="https://hh.ru/search/resume?text=Региональный+визуальный+мерчендайзер")
use_filters = gr.Checkbox(label="Использовать Фильтры ( если выключенно, создается максимально кол-во ссылок )")
with gr.Accordion("Фильтры",open=True):
# Набор фильтров
use_inc_values = gr.Checkbox(label="Добавить к списку резюме, список без указанного возраста и зарплаты")
with gr.Row():
with gr.Row():
job_search_status_enable = gr.Checkbox(label="Статус поиска работы",value=True)
gender_enable = gr.Checkbox(label="Пол",value=True)
with gr.Row():
age_enable = gr.Checkbox(label="Возраст",value=True)
with gr.Row():
salary_enable = gr.Checkbox(label="Зарплата",value=True)
education_level_enable = gr.Checkbox(label="Образование",value=True)
experience_enable = gr.Checkbox(label="Опыт работы",value=True)
with gr.Accordion("Настройка фильтров",open=False):
with gr.Row():
job_search_status = gr.CheckboxGroup(["unknown", "not_looking_for_job", "looking_for_offers", "active_search", "has_job_offer", "accepted_job_offer"], label="Статус поиска работы")
gender = gr.Radio(["male", "female","both"], label="Пол")
with gr.Row():
age_from = gr.Slider(18, 70,value=18, step=1, label="Возраст от")
age_to = gr.Slider(18, 70,value=71,step=1, label="Возраст до")
with gr.Row():
salary_from = gr.Slider(0, 1000000000,step=1,value=0, label="Зарплата от")
salary_to = gr.Slider(0, 1000000000,step=1,value=1000000000,label="Зарплата до")
education_level = gr.CheckboxGroup(["secondary", "special_secondary", "unfinished_higher", "bachelor", "master", "doctor", "candidate", "higher"], label="Уровень образования")
experience = gr.CheckboxGroup(["noExperience", "between1And3", "between3And6", "moreThan6"], label="Опыт работы")
with gr.Row():
get_result_btn = gr.Button("Получить")
with gr.Row():
result_field = gr.File(label="Результат", interactive=False)
with gr.Row():
result_count_field = gr.Label(value="Кол-во ссылок")
get_result_btn.click(fn=get_links,inputs=
[ job_search_status_enable,gender_enable,salary_enable,education_level_enable,experience_enable,age_enable,
links,use_filters,use_inc_values,job_search_status,gender,age_from,age_to,salary_from,salary_to,education_level,experience],
outputs=[result_field,result_count_field])
demo.launch() |