From: Claromes Date: Wed, 31 May 2023 05:16:36 +0000 (-0300) Subject: add exception X-Git-Url: https://git.claromes.com/?a=commitdiff_plain;h=2e7781b02d902a4a248e5e4f15dfcd961b2cb039;p=waybacktweets.git add exception --- diff --git a/README.md b/README.md index 65d6229..6a70de2 100644 --- a/README.md +++ b/README.md @@ -40,10 +40,11 @@ Streamlit will be served at http://localhost:8501 - [x] Disabled/ Empty - [ ] Feedbacks - [ ] Download dataset -- [ ] Review data cache +- [ ] Add/Review data cache - [ ] Range size defined by user - [ ] Prevent duplicate URLs - [ ] Hide Twitter header banner (iframe) - [ ] Grid - [ ] Contributing/ Docs - [ ] Changelog +- [ ] `parse_links` exception diff --git a/app.py b/app.py index f8b6157..c879072 100644 --- a/app.py +++ b/app.py @@ -89,7 +89,6 @@ def embed(tweet): else: return None -@st.cache_data(show_spinner=False) def query_api(handle): if not handle: st.warning('username, please!') @@ -136,88 +135,92 @@ if query or handle: if query != st.session_state.current_query: st.session_state.current_index = 0 - with st.spinner(''): - progress = st.empty() - links = query_api(handle) - parsed_links = parse_links(links)[0] - tweet_links = parse_links(links)[1] - mimetype = parse_links(links)[2] - timestamp = parse_links(links)[3] + try: + with st.spinner(''): + progress = st.empty() + links = query_api(handle) + parsed_links = parse_links(links)[0] + tweet_links = parse_links(links)[1] + mimetype = parse_links(links)[2] + timestamp = parse_links(links)[3] - only_deleted = st.checkbox('Only deleted tweets') + only_deleted = st.checkbox('Only deleted tweets') - if links: - st.divider() + if links: + st.divider() - st.session_state.current_handle = handle - st.session_state.current_query = query + st.session_state.current_handle = handle + st.session_state.current_query = query - return_none_count = 0 - tweets_per_page = 50 + return_none_count = 0 + tweets_per_page = 50 - def prev_page(): - st.session_state.current_index -= tweets_per_page + def prev_page(): + st.session_state.current_index -= tweets_per_page - #scroll to top config - st.session_state.update_component += 1 - scroll_into_view() + #scroll to top config + st.session_state.update_component += 1 + scroll_into_view() - def next_page(): - st.session_state.current_index += tweets_per_page + def next_page(): + st.session_state.current_index += tweets_per_page - #scroll to top config - st.session_state.update_component += 1 - scroll_into_view() + #scroll to top config + st.session_state.update_component += 1 + scroll_into_view() - start_index = st.session_state.current_index - end_index = min(len(parsed_links), start_index + tweets_per_page) + start_index = st.session_state.current_index + end_index = min(len(parsed_links), start_index + tweets_per_page) - for i in range(start_index, end_index): - link = parsed_links[i] - tweet = embed(tweet_links[i]) + for i in range(start_index, end_index): + link = parsed_links[i] + tweet = embed(tweet_links[i]) - if not only_deleted: - attr(i) + if not only_deleted: + attr(i) - if tweet == None: - st.error('Tweet has been deleted.') - components.iframe(src=link, width=700, height=1000, scrolling=True) - st.divider() - else: - components.html(tweet, width=700, height=1000, scrolling=True) - st.divider() + if tweet == None: + st.error('Tweet has been deleted.') + components.iframe(src=link, width=700, height=1000, scrolling=True) + st.divider() + else: + components.html(tweet, width=700, height=1000, scrolling=True) + st.divider() - if i + 1 == end_index: - progress.write('{} of {} URLs have been captured'.format(i + 1, len(parsed_links))) - else: - progress.write('{} to {} of {} URLs have been captured'.format(i + 1, end_index, len(parsed_links))) + if i + 1 == end_index: + progress.write('{} of {} URLs have been captured'.format(i + 1, len(parsed_links))) + else: + progress.write('{} to {} of {} URLs have been captured'.format(i + 1, end_index, len(parsed_links))) - if only_deleted: - if tweet == None: - return_none_count += 1 - attr(i) + if only_deleted: + if tweet == None: + return_none_count += 1 + attr(i) - st.error('Tweet has been deleted.') - components.iframe(src=link, width=700, height=1000, scrolling=True) - st.divider() + st.error('Tweet has been deleted.') + components.iframe(src=link, width=700, height=1000, scrolling=True) + st.divider() - progress.write('{} URLs have been captured in the range {}-{} of {}'.format(return_none_count, start_index, end_index, len(parsed_links))) + progress.write('{} URLs have been captured in the range {}-{} of {}'.format(return_none_count, start_index, end_index, len(parsed_links))) - if start_index <= 0: - st.session_state.prev_disabled = True - else: - st.session_state.prev_disabled = False + if start_index <= 0: + st.session_state.prev_disabled = True + else: + st.session_state.prev_disabled = False - if i + 1 == len(parsed_links): - st.session_state.next_disabled = True - else: - st.session_state.next_disabled = False + if i + 1 == len(parsed_links): + st.session_state.next_disabled = True + else: + st.session_state.next_disabled = False - prev, _ , next = st.columns([3, 4, 3]) + prev, _ , next = st.columns([3, 4, 3]) - prev.button('Previous', disabled=st.session_state.prev_disabled, key='prev_button_key', on_click=prev_page, type='primary', use_container_width=True) - next.button('Next', disabled=st.session_state.next_disabled, key='next_button_key', on_click=next_page, type='primary', use_container_width=True) + prev.button('Previous', disabled=st.session_state.prev_disabled, key='prev_button_key', on_click=prev_page, type='primary', use_container_width=True) + next.button('Next', disabled=st.session_state.next_disabled, key='next_button_key', on_click=next_page, type='primary', use_container_width=True) - if not links: - st.error('Unable to query the Wayback Machine API.') + if not links: + st.error('Unable to query the Wayback Machine API.') + except TypeError as e: + st.error('{}. Refresh this page and try again.'.format(e)) + st.session_state.current_index = 0 \ No newline at end of file