Spaces:
Sleeping
Sleeping
| import panel as pn | |
| import pytz | |
| from datetime import date | |
| from datetime import datetime | |
| from dateutil.relativedelta import relativedelta, MO | |
| import param | |
| import json | |
| from functools import partial | |
| from src.search import Search_Papers | |
| def load_categories(): | |
| # f = open("categories_general.txt", "r") | |
| # list_categories = f.read().splitlines() | |
| # reading the data from the file | |
| with open('categories_arxiv.txt') as f: | |
| data = f.read() | |
| # reconstructing the data as a dictionary | |
| category_dict = json.loads(data) | |
| list_categories_tags = list(category_dict.keys()) | |
| list_categories_names = list(category_dict.values()) | |
| return [list_categories_tags, list_categories_names] | |
| def run_code(buttons_to_add, arxiv_tags, event = None): | |
| categories = buttons_to_add | |
| timeframe_today = (datetime.combine(date.today(), datetime.min.time())).replace(tzinfo = pytz.utc) | |
| timeframe_week = timeframe_today + relativedelta(weekday=MO(-1)) | |
| timeframe_day = (datetime.combine(datetime(2023, 7, 16), datetime.min.time())).replace(tzinfo = pytz.utc) | |
| search_mode = "Timeframe" #Accepted values: 'NumberResults' and 'Timeframe | |
| sort_by = "PublishDate" #Accepted values: 'PublishDate', 'LastUpdatedDate' and 'Relevance' | |
| sort_order = "Descending" #Accepted values: 'Ascending' and 'Descending' | |
| for category in arxiv_tags: | |
| print("Inside function:", buttons_to_add, category, flush = True) | |
| query = category | |
| search = Search_Papers(query, search_mode, timeframe_week, sort_by, sort_order) | |
| result_arxiv = search.search_arxiv() | |
| # result_general = search.search_general() | |
| # for test in result_general: | |
| # try: | |
| # print(test['title'], flush = True) | |
| # print(test['subject'], flush = True) | |
| # print(test, flush = True) | |
| # except: | |
| # print(test['abstract'], flush = True) | |
| #return result_general | |
| return result_arxiv | |
| def update_mainTLDR(buttons_to_add, paper_list): | |
| # Create a list to store the contents for the selected categories | |
| content_list = [] | |
| # Check if any categories are selected | |
| if buttons_to_add: | |
| for i in range(len(buttons_to_add)): | |
| print("Used categories:", buttons_to_add, flush=True) | |
| # Generate a Markdown object for each selected category | |
| markdown = pn.pane.Markdown(f"# {buttons_to_add[i]}") | |
| first_flag = 1 | |
| for paper in paper_list[i]: | |
| print("Paper list: ", paper.title, flush = True) | |
| # paper_title = "## " + paper['title'][0] | |
| # paper_tldr = "### " + paper['abstract'][0] | |
| # paper_date = "### " + paper['created'][0] | |
| paper_title = "## " + paper.title | |
| paper_tldr = paper.summary | |
| paper_date = "### " + (paper.published).strftime("%d/%m/%Y %H:%M:%S") | |
| if first_flag: | |
| content = pn.Row( | |
| markdown, | |
| pn.Column(paper_title, | |
| paper_tldr, | |
| paper_date), | |
| sizing_mode='stretch_width', | |
| ) | |
| first_flag = 0 | |
| else: | |
| content = pn.Row( | |
| pn.Column( | |
| paper_title, | |
| paper_tldr, | |
| paper_date), | |
| sizing_mode='stretch_width', | |
| ) | |
| content_list.append(content) | |
| #content_list.append(content) | |
| else: | |
| # If no categories are selected, display the default message | |
| content_list.append(pn.pane.Markdown("# Please select some tags!")) | |
| return content_list | |