fix range
authorClaromes <claromes@hey.com>
Fri, 21 Jul 2023 21:21:05 +0000 (18:21 -0300)
committerClaromes <claromes@hey.com>
Fri, 21 Jul 2023 21:21:05 +0000 (18:21 -0300)
README.md
app.py

index 21b4bbd6a47d74906f56e7e400b74c5f16143e52..3bdb2d2ed48e779785bc211afc30639ff9322b56 100644 (file)
--- a/README.md
+++ b/README.md
@@ -10,10 +10,8 @@ Web tool that displays multiple archived tweets on Wayback Machine to avoid open
 
 ## Features
 
-- 25 embedded tweets per page
+- 30 embedded tweets per page
 - Filtering by only deleted tweets
-- Wayback Machine link and original tweet link
-- Datetime information
 
 ## Development
 
@@ -48,8 +46,8 @@ Streamlit will be served at http://localhost:8501
 - [x] Feedbacks
 - [ ] Download dataset
 - [x] Review data cache
-- [ ] Range size defined by user
+- [ ] Changelog
 - [ ] Prevent duplicate URLs
+- [ ] Range size defined by user
 - [ ] Hide Twitter header banner (iframe)
-- [ ] Changelog
 - [ ] `parse_links` exception
diff --git a/app.py b/app.py
index 73df67d41ff81d04d3031cde00708d71e0fb0d30..3fa25ffd77bf24cc692142294263e3e419ed456c 100644 (file)
--- a/app.py
+++ b/app.py
@@ -20,6 +20,9 @@ st.set_page_config(
 
         Tool that displays multiple archived tweets on Wayback Machine to avoid opening each link manually.
 
+        - 30 embedded tweets per page
+        - Filtering by only deleted tweets
+
         This tool is experimental, please feel free to send your [feedbacks](https://github.com/claromes/waybacktweets/issues).
 
         -------
@@ -130,7 +133,7 @@ def parse_links(links):
 def attr(i):
     st.markdown('''
     {}. **Wayback Machine:** [link]({}) | **MIME Type:** {} | **Created at:** {} | **Tweet:** [link]({})
-    '''.format(i + st.session_state.offset, link, mimetype[i], datetime.datetime.strptime(timestamp[i], "%Y%m%d%H%M%S"), tweet_links[i]))
+    '''.format(i+1 + st.session_state.offset, link, mimetype[i], datetime.datetime.strptime(timestamp[i], "%Y%m%d%H%M%S"), tweet_links[i]))
 
 # UI
 st.title('''
@@ -156,7 +159,7 @@ if query or handle:
 
     st.write('**{} URLs have been captured**'.format(count))
 
-    tweets_per_page = 25
+    tweets_per_page = 30
 
     only_deleted = st.checkbox('Only deleted tweets')
 
@@ -195,41 +198,49 @@ if query or handle:
                 start_index = st.session_state.offset
                 end_index = min(count, start_index + tweets_per_page)
 
-                for i in range(tweets_per_page): #fix range
-                    link = parsed_links[i]
-                    tweet = embed(tweet_links[i])
+                for i in range(tweets_per_page):
+                    try:
+                        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 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 {}-{}'.format(return_none_count, start_index, end_index))
+                            progress.write('{} URLs have been captured in the range {}-{}'.format(return_none_count, start_index, end_index))
 
-                    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 == count:
+                            st.session_state.next_disabled = True
+                        else:
+                            st.session_state.next_disabled = False
+                    except IndexError:
+                        if start_index <= 0:
+                            st.session_state.prev_disabled = True
+                        else:
+                            st.session_state.prev_disabled = False
 
-                    if i + 1 == count:
                         st.session_state.next_disabled = True
-                    else:
-                        st.session_state.next_disabled = False
 
                 prev, _ , next = st.columns([3, 4, 3])