panel_example7 / TLDR.py
EasySci's picture
Update TLDR.py
2e5869b
raw
history blame
3.95 kB
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