Commit Graph
100 Commits
Author SHA1 Message Date
tanner 7c600dcfba Only wrap code in comments 2025-12-03 04:18:36 +00:00
tannerandaider 92e70229fe fix: Refine code block detection to ignore inline <code>
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 03:57:08 +00:00
tannerandaider b749e58f62 fix: Refine code block detection to exclude inline code
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 03:55:18 +00:00
tannerandaider b1b2be6080 fix: Use textContent for code block conversion to prevent content loss
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 03:51:33 +00:00
tannerandaider 5ebe87dbc2 refactor: Optimize nodes() calls and simplify function in Article
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 03:50:10 +00:00
tannerandaider a8a36b693e fix: Render void elements correctly and copy all attributes
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 03:12:51 +00:00
tannerandaider 60eefb4b27 refactor: Implement recursive rendering to detect and convert code blocks
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 02:52:07 +00:00
tannerandaider 8f5dae4bdc fix: Unwrap single-child wrapper elements in nodes function
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 02:46:20 +00:00
tanner 89a511efc0 chore: Add debug log to isCodeBlock function 2025-12-03 02:46:18 +00:00
tannerandaider 504fe745ea fix: Relax isCodeBlock check for nested code elements
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 02:37:58 +00:00
tanner 762e8a9a2e refactor: Refactor nodes logic from useMemo to a regular function 2025-12-03 02:37:56 +00:00
tannerandaider 6dc47f6672 refactor: Extract code block detection into isCodeBlock function
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 01:46:19 +00:00
tannerandaider da108f25d4 fix: Detect code blocks nested in pre tags for conversion
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 01:43:33 +00:00
tannerandaider a2303841ec fix: Show 'Convert Code to Paragraph' button for <code> elements
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 01:37:08 +00:00
tannerandaider 0e7aedbc5e fix: Adjust spacing below comment text content
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 01:28:10 +00:00
tannerandaider ec7d395407 fix: Wrap text in <pre> blocks to prevent horizontal overflow
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 00:58:39 +00:00
tannerandaider fd5acd4861 refactor: Convert 'show more' div to semantic button
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 00:50:58 +00:00
tannerandaider b1d4fc2903 refactor: Convert collapser span to button for accessibility
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-03 00:48:22 +00:00
tannerandaider 0f87d47536 refactor: Remove unnecessary useCallback from comment functions
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 23:53:40 +00:00
tanner 8472907730 Mark deleted / empty comments 2025-12-02 23:39:24 +00:00
tanner 482753e96a Add a copy button to the article title 2025-12-02 23:19:31 +00:00
tannerandaider 169a84faa1 fix: Align article title and copy button, correct icon font
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 23:19:31 +00:00
tanner 6fa929fb1f style: Update copy link button font 2025-12-02 23:19:31 +00:00
tannerandaider 5f02a95cf3 fix: Improve copy button icon display and alignment
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 23:19:31 +00:00
tanner 1789f88d4d style: Style copy button icon 2025-12-02 23:19:31 +00:00
tannerandaider f5eab47496 feat: Use icons for copy link button feedback
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 23:19:31 +00:00
tannerandaider 985e596790 feat: Add button to copy article title and URL to clipboard
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 23:19:31 +00:00
tanner 30298928f3 Move static build directory to apiserver/ 2025-12-02 22:38:49 +00:00
tannerandaider 8d7d692d9c refactor: Iterate through stories in order for prioritized updates
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 22:37:58 +00:00
tannerandaider bd85127613 fix: Unregister service worker
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 17:13:52 +00:00
tanner 4c9d5eede1 Revert ScrollToTop component back to class-based 2025-12-02 17:02:03 +00:00
tanner bf3e6bbc28 Don't setStories every loop iteration 2025-12-02 16:52:32 +00:00
tannerandaider 856c360d98 feat: Add loading progress indicator to Feed
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-12-02 01:20:27 +00:00
tanner 1ce55e6d1f feat: Add fetching stories placeholder 2025-12-02 01:20:25 +00:00
tanner 6a329e3ba9 Misc fixes 2025-12-01 21:07:01 +00:00
tannerandaider 3acaf230c4 fix: Improve submit error handling on API and refactor client with async/await
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 23:02:29 +00:00
tannerandaider 7b84573dd8 fix: Improve error handling for non-JSON server responses in Submit
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:59:15 +00:00
tannerandaider 7523426f15 feat: Display detailed submission errors to user
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:56:48 +00:00
tannerandaider b2ec85cfa5 feat: Display detailed, expandable connection error in Comments component
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:51:14 +00:00
tannerandaider 8c201d5c2e fix: Conditionally render error details to avoid layout gap
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:45:58 +00:00
tanner a21c84efc6 refactor: Improve article loading error and cache messages 2025-11-21 22:45:54 +00:00
tannerandaider 15aa413584 fix: Prevent layout shift when error message appears
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:39:34 +00:00
tanner e9ee231954 feat: Persist new stories and improve layout consistency 2025-11-21 22:39:32 +00:00
tannerandaider 62d5915133 feat: Add detailed, expandable error messages to Article component
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 22:34:24 +00:00
tannerandaider 61ec583882 feat: Show preload progress on fetch failure
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 00:59:14 +00:00
tanner 1443fdcc32 style: Improve error messages and loading text, add spacing to error details 2025-11-21 00:59:12 +00:00
tannerandaider f2310b6925 fix: Provide detailed error for story fetch failures
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 00:50:58 +00:00
tannerandaider aa80570da4 fix: Display network error on API fetch failure
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 00:49:14 +00:00
tannerandaider 7d0e60f5f0 fix: Provide detailed error messages for network failures
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 00:45:59 +00:00
tanner 21b5d67052 feat: Show detailed connection errors in collapsible section 2025-11-21 00:41:57 +00:00
tannerandaider 53468c8ccd feat: Add 10s timeout and early exit for story preloading on error
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-21 00:34:17 +00:00
tannerandaider 6cfb4b317f feat: Immediately display stories on first load
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-20 23:02:59 +00:00
tannerandaider f08202d592 fix: Always fetch full story and update existing in feed
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-20 22:58:44 +00:00
tanner 5a7f55184d Begin stats API route 2025-11-20 22:25:26 +00:00
tanner e84062394b Ignore aider files 2025-11-20 22:25:20 +00:00
tanner e867d5d868 Add debug logging, debug add manual submissions to feed 2025-11-20 21:55:45 +00:00
tanner 845d87ec55 Logging 2025-11-19 19:17:38 +00:00
tannerandaider e18aaad741 fix: Batch story list updates and limit length
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-19 19:17:38 +00:00
tanner 02e86efb4f chore: Add console log for stories 2025-11-19 19:17:38 +00:00
tannerandaider b85d879ae7 fix: Fix infinite loop in Feed by removing stories from useEffect deps
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-19 19:17:38 +00:00
tannerandaider 55bf75742e refactor: Refactor Feed story fetching for improved network resilience
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2025-11-19 19:17:38 +00:00
tanner 83cb6fc0ae chore: Disable story updates and preloading logic 2025-11-19 19:17:38 +00:00
tanner 667c2c5eaf refactor: Refactor dot components to functional 2025-11-19 19:17:38 +00:00
tanner 1df1c59d61 refactor: Refactor Submit component to use hooks 2025-11-19 19:17:38 +00:00
tanner c4f2e7d595 refactor: Refactor Search component to use hooks 2025-11-19 19:17:38 +00:00
tanner f61cfc09b0 refactor: Convert ScrollToTop to functional component with hooks 2025-11-19 19:17:38 +00:00
tanner 366e76e25d refactor: refactor Results component to functional component 2025-11-19 19:17:38 +00:00
tanner 6f1811c564 Update webclient dependencies 2025-11-19 19:17:38 +00:00
tanner 443115ac0f refactor: Refactor Feed component to functional with hooks 2025-11-19 19:17:38 +00:00
tanner 034c440e46 refactor: Convert Comments class to functional using hooks 2025-11-19 19:17:38 +00:00
tanner 26a6353ca5 refactor: Rename Article component to Comments 2025-11-19 19:17:38 +00:00
tanner 7ac4dfa01c refactor: Refactor Article component to use hooks 2025-11-19 19:17:38 +00:00
tanner 633429c976 refactor: Convert App class component to functional component 2025-11-19 19:17:38 +00:00
tanner 5cdbf6ef54 Ignore blank hackernews titles 2025-11-19 19:17:38 +00:00
tanner f1a30d0af2 Skip "Removed by moderator" stories 2025-09-27 17:38:50 +00:00
tanner 9ec61ea5bc Ignore dead and political stories 2025-05-27 18:47:17 +00:00
tanner bdc7a6c10d Fix Better HN api content extraction 2025-02-01 22:39:13 +00:00
tanner 4858516b01 Add Better HN as an API backup 2025-02-01 21:42:06 +00:00
tanner f10e6063fc Bug fixes 2025-02-01 20:31:35 +00:00
tanner 249a616531 Alert on story update error 2024-03-16 20:41:24 +00:00
tanner ab92bd5441 Adjust score and comment thresholds 2024-03-08 03:08:18 +00:00
tanner 6b16a768a7 Fix deletion script 2024-03-08 03:08:03 +00:00
tanner 57de076fec Increase database timeout 2024-02-27 18:48:56 +00:00
tanner 074b898508 Fix lobsters comment parsing 2024-02-27 18:47:00 +00:00
tanner f049d194ab Move scripts into own folder 2024-02-27 18:32:29 +00:00
tanner c2b9a1cb7a Update readability 2024-02-27 18:32:19 +00:00
tanner 4435f49e17 Make "dark" theme grey, add "black" theme 2023-09-13 01:19:47 +00:00
tanner 494d89ac30 Disable lobsters 2023-09-13 01:02:15 +00:00
tanner e79fca6ecc Replace "indent_level" with "depth" in lobsters API
See:
https://github.com/lobsters/lobsters/commit/fe09e5aa31993e09ed4ad255bb4a359f1e8a2d62
2023-08-31 07:35:44 +00:00
tanner c65fb69092 Handle Lobsters comment parsing TypeErrors
Too lazy to debug this:

2023-08-29 12:56:35,111 - root - INFO - Updating lobsters story: yktkwr, index: 55
Traceback (most recent call last):
  File "src/gevent/greenlet.py", line 854, in gevent._gevent_cgreenlet.Greenlet.run
  File "/home/tanner/qotnews/apiserver/server.py", line 194, in feed_thread
    valid = feed.update_story(story)
  File "/home/tanner/qotnews/apiserver/feed.py", line 74, in update_story
    res = lobsters.story(story['ref'])
  File "/home/tanner/qotnews/apiserver/feeds/lobsters.py", line 103, in story
    s['comments'] = iter_comments(r['comments'])
  File "/home/tanner/qotnews/apiserver/feeds/lobsters.py", line 76, in iter_comments
    parent_stack = parent_stack[:indent-1]
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
2023-08-29T12:56:35Z <Greenlet at 0x7f92ad840ae0: feed_thread> failed with TypeError
2023-08-31 07:30:39 +00:00
tanner 632d028e4c Add Tildes group whitelist 2023-07-13 22:54:36 +00:00
tanner ea8e9e5a23 Increase again 2023-06-13 17:11:50 +00:00
tanner 2838ea9b41 Increase Tildes story score requirement 2023-06-11 01:01:31 +00:00
tanner f15d108971 Catch all possible Reddit API exceptions 2023-03-15 21:16:37 +00:00
tanner f777348af8 Fix darkmode fullscreen button color 2022-08-11 19:36:36 +00:00
tanner 486404a413 Fix fix-stories bug 2022-08-10 04:06:39 +00:00
tanner 7c9c07a4cf Hide fullscreen button if it's not available 2022-08-10 04:05:25 +00:00
tanner 08d02f6013 Add fullscreen mode 2022-08-08 23:21:49 +00:00
tanner 1b54342702 Add red theme 2022-08-08 20:14:57 +00:00
tanner 9e9571a3c0 Write fixed stories to database 2022-07-05 00:57:56 +00:00