Skip to content

Commit

Permalink
Merge branch 'dejal'
Browse files Browse the repository at this point in the history
* dejal: (21 commits)
  #1898 (Marking story as read/unread right after loading will mark different story)
  Bumped build number
  #1907 (Resizable middle column)
  Fixed #1906 (story list leaves a space after all stories read)
  Backfilling Youtube videos for premium archive subscribers.
  Handling no content when finding feeds.
  Don't guess RSS feed urls on openrss/feedburner domains.
  Adding dashboard_rivers to /reader/feeds?flat=true for #1899
  Deprecating old blog.
  Adding macOS app to Goodies.
  Adding hblog as possible server in nginx.
  Adding docker rule for hblog:80
  New macOS blog post.
  Finishing macOS blog post. Need to upgrade minima theme.
  New screenshots of the macOS app
  #1903 (Saved searches don't work)
  #1902 (Adjust position of unread indicator on story title select)
  #1247 (Mac Catalyst edition)
  Prep
  #1247 (Mac Catalyst edition)
  ...
  • Loading branch information
samuelclay committed Nov 13, 2024
2 parents f06ddb7 + 1886384 commit a445f4a
Show file tree
Hide file tree
Showing 184 changed files with 1,791 additions and 1,157 deletions.
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,9 @@ jekyll:
cd blog && bundle exec jekyll serve
jekyll_drafts:
cd blog && bundle exec jekyll serve --drafts

jekyll_build:
cd blog && bundle exec jekyll build

# runs tests
test:
RUNWITHMAKEBUILD=True CURRENT_UID=${CURRENT_UID} CURRENT_GID=${CURRENT_GID} TEST=True docker compose -f docker-compose.yml up -d newsblur_web
Expand Down
2 changes: 1 addition & 1 deletion ansible/inventories/hetzner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ groups:
hcount: inventory_hostname.startswith('happ-count')
push: inventory_hostname.startswith('happ-push')
hpush: inventory_hostname.startswith('happ-push')
blogs: inventory_hostname.startswith('blog')
blogs: inventory_hostname.startswith('hblog')
forum: inventory_hostname.startswith('hforum')

node: inventory_hostname.startswith('hnode')
Expand Down
3 changes: 3 additions & 0 deletions ansible/roles/ufw/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@
:DOCKER-USER - [0:0]
-A DOCKER-USER -j ufw-user-forward
# Allow traffic on port 80 to Docker containers
-A DOCKER-USER -p tcp --dport 80 -j ACCEPT
-A DOCKER-USER -j RETURN -s 10.0.0.0/8
-A DOCKER-USER -j RETURN -s 172.16.0.0/12
-A DOCKER-USER -j RETURN -s 192.168.0.0/16
Expand Down
4 changes: 2 additions & 2 deletions apps/profile/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ def FetchArchiveFeedsForUser(user_id):


@app.task()
def FetchArchiveFeedsChunk(user_id, feed_ids):
def FetchArchiveFeedsChunk(feed_ids, user_id=None):
# logging.debug(" ---> Fetching archive stories: %s for %s" % (feed_ids, user_id))
UserSubscription.fetch_archive_feeds_chunk(user_id, feed_ids)
UserSubscription.fetch_archive_feeds_chunk(feed_ids, user_id)


@app.task()
Expand Down
16 changes: 11 additions & 5 deletions apps/reader/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,9 @@ def add_subscription(
feed.setup_feed_for_premium_subscribers(allow_skip_resync=allow_skip_resync)
feed.count_subscribers()

if feed.archive_count:
feed.schedule_fetch_archive_feed()

r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
r.publish(user.username, "reload:feeds")

Expand Down Expand Up @@ -654,13 +657,15 @@ def fetch_archive_feeds_for_user(cls, user_id):
celery.chord(search_chunks)(callback)

@classmethod
def fetch_archive_feeds_chunk(cls, user_id, feed_ids):
def fetch_archive_feeds_chunk(cls, feed_ids, user_id=None):
from apps.rss_feeds.models import Feed

r = redis.Redis(connection_pool=settings.REDIS_PUBSUB_POOL)
user = User.objects.get(pk=user_id)

logging.user(user, "~FCFetching archive stories from %s feeds..." % len(feed_ids))
if user_id:
user = User.objects.get(pk=user_id)
logging.user(user, "~FCFetching archive stories from %s feeds..." % len(feed_ids))
else:
logging.debug("~FCFetching archive stories from %s feeds..." % len(feed_ids))

for feed_id in feed_ids:
feed = Feed.get_by_id(feed_id)
Expand All @@ -669,7 +674,8 @@ def fetch_archive_feeds_chunk(cls, user_id, feed_ids):

feed.fill_out_archive_stories()

r.publish(user.username, "fetch_archive:feeds:%s" % ",".join([str(f) for f in feed_ids]))
if user_id:
r.publish(user.username, "fetch_archive:feeds:%s" % ",".join([str(f) for f in feed_ids]))

@classmethod
def finish_fetch_archive_feeds(cls, user_id, start_time, starting_story_count):
Expand Down
2 changes: 2 additions & 0 deletions apps/reader/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -523,6 +523,7 @@ def load_feeds_flat(request):
categories = MCategory.serialize()

saved_searches = MSavedSearch.user_searches(user.pk)
dashboard_rivers = MDashboardRiver.get_user_rivers(user.pk)

logging.user(
request,
Expand Down Expand Up @@ -555,6 +556,7 @@ def load_feeds_flat(request):
"starred_count": starred_count,
"starred_counts": starred_counts,
"saved_searches": saved_searches,
"dashboard_rivers": dashboard_rivers,
"share_ext_token": user.profile.secret_token,
}
return data
Expand Down
14 changes: 12 additions & 2 deletions apps/rss_feeds/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -715,6 +715,16 @@ def setup_feed_for_premium_subscribers(self, allow_skip_resync=False):
self.set_next_scheduled_update(verbose=settings.DEBUG)
self.sync_redis(allow_skip_resync=allow_skip_resync)

def schedule_fetch_archive_feed(self):
from apps.profile.tasks import FetchArchiveFeedsChunk

logging.debug(f"~FC~SBScheduling fetch of archive feed ~SB{self.log_title}")
FetchArchiveFeedsChunk.apply_async(
kwargs=dict(feed_ids=[self.pk]),
queue="search_indexer",
time_limit=settings.MAX_SECONDS_ARCHIVE_FETCH_SINGLE_FEED,
)

def check_feed_link_for_feed_address(self):
@timelimit(10)
def _1():
Expand Down Expand Up @@ -2850,8 +2860,8 @@ def get_data(cls, feed_id):
data = zlib.decompress(page_data_z)
except zlib.error as e:
logging.debug(" ***> Zlib decompress error: %s" % e)
self.page_data = None
self.save()
feed_page.page_data = None
feed_page.save()
return

if not data:
Expand Down
2 changes: 1 addition & 1 deletion apps/search/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ def more_like_this(cls, feed_ids, story_hash, order, offset, limit):
try:
result_ids = [r["_id"] for r in results["hits"]["hits"]]
except Exception as e:
logging.info(' ---> ~FRInvalid search query "%s": %s' % (query, e))
logging.info(' ---> ~FRInvalid more like this query "%s": %s' % (story_hash, e))
return []

return result_ids
Expand Down
8 changes: 4 additions & 4 deletions blog/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
Expand All @@ -23,16 +23,17 @@ email: [email protected]
tagline: A new sound of an old instrument
description: > # this means to ignore newlines until "baseurl:"
NewsBlur is a personal news reader that brings people together to talk about the world.
A new sound of an old instrument.
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://blog.newsblur.com" # the base hostname & protocol for your site, e.g. http://example.com
site.url: "https://blog.newsblur.com" # the base hostname & protocol for your site, e.g. http://example.com
permalink: pretty
twitter_username: newsblur
github_username: samuelclay
github_username: samuelclay
logo: /assets/newsblur_logo_512.png
future: true
timezone: America/New_York

# Build settings
theme: minima
Expand All @@ -42,7 +43,6 @@ plugins:
- jekyll-paginate
paginate: 10
paginate_path: "/page:num"

# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
Expand Down
22 changes: 10 additions & 12 deletions blog/_posts/2024-10-22-newsblur-macos-app.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,34 @@
---
layout: post
title: NewsBlur's native macOS App
tags: ['macos']
title: NewsBlur's native macOS App offers news notifications directly on your desktop
tags: ["macos"]
---

If you're like me and like to have NewsBlur sitting open all day, then you'll love the new NewsBlur macOS app. It's a first-class app that supports all of NewsBlur's features, from intelligence training to sharing/blurblogs.
If you're like me and like to have NewsBlur sitting open all day, then you'll love the new NewsBlur macOS app. It's a first-class app that supports all of NewsBlur's features, from intelligence training to sharing/blurblogs.

Introducing the <a href="https://apps.apple.com/us/app/newsblur/id463981119">NewsBlur macOS app</a>, available for free on the Mac App Store.

<img src="/assets/macos-1.png" style="width: 100%;border: none;margin: 24px auto;display: block;">

The macOS app also supports all of the themes, so it can turn itself into dark mode automatically.

<img src="/assets/macos-2.png" style="width: 100%;border: none;margin: 24px auto;display: block;">


It's configurable and supports ay=utomatic hiding and showing of the feed list so you can focus on the stories you want to read. Use your mouse to swipe left and right on both stories and to swap which pane is visible.

<img src="/assets/macos-3.png" style="width: 100%;border: none;margin: 24px auto;display: block;">


In the Grid view, you can swipe right with your mouse to temporarily show the feed list, giving you a compact view of your news stories without having to give up screen real estate.

<img src="/assets/macos-4.png" style="width: 100%;border: none;margin: 24px auto;display: block;">


Training is supported natively, so you can hide those stories you don't want to see while highlighting those thast you do.

<img src="/assets/macos-5.png" style="width: 100%;border: none;margin: 24px auto;display: block;">

It's important to be able to train, because you can set notifications to be sent from either your Unread list or your Focus list, ensuring you only see the notifications from sites you want to see. And clicking on those native macOS notifications takes you directly to the story in the new macOS app.


<img src="/assets/macos-6.png" style="width: 100%;border: none;margin: 24px auto;display: block;">



<img src="/assets/macos-7.png" style="width: 100%;border: 1px solid #A0A0A0;margin: 24px auto;display: block;">
<img src="/assets/macos-6.png" style="width: 100%;border: 1px solid #A0A0A0;margin: 24px auto;display: block;">

If you have any ideas you'd like to see on macOS, feel free to post an idea on the <a href="https://forum.newsblur.com">NewsBlur Forum</a>.

Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2011/03/15/a-new-logo-for-a-new-blog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>A New Logo for a New Blog | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="A New Logo for a New Blog" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="We’ve come a long way, readers. What started as a fun project to scratch an itch has become a fun project that pays for its ever-increasing self. This week I’m going to show how motivated I am about turning NewsBlur into a serious blog reader. And it starts with a collection of a circles:" />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2011/04/01/explaining-intelligence/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Explaining Intelligence | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Explaining Intelligence" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="If you’re not using intelligence classifiers, you’re only getting half the value out of NewsBlur. " />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2011/04/23/where-we-are-in-april/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Where We Are in April | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Where We Are in April" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Hi readers, I want to take a moment to share what I’m working on for the month of April:" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Make your own feed reader with NewsBlur’s new API | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Make your own feed reader with NewsBlur’s new API" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Please vote for this blog post on Hacker News: http://news.ycombinator.com/item?id=2485377." />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Blar: A new Android app for NewsBlur | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Blar: A new Android app for NewsBlur" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="This Summer is shaping up to be the season for mobile apps. Blar, a new Android client for NewsBlur, has just been released. It’s available on the Android Market here: https://market.android.com/details?id=bitwrit.Blar. It is created by Harris Munir, who you can contact through his site." />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Customizing the reader, step 1: story titles | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Customizing the reader, step 1: story titles" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="The iPhone app is now only a few days away from launching. But it took 3 weeks of sitting around in the App Store approval queue before getting here. During that time, I started working on the new customizations that folks have been asking for." />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2011/10/26/a-social-feed-reader/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>A Social Feed Reader | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="A Social Feed Reader" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="NewsBlur was released exactly one year ago. You can read the initial reaction on Hacker News: http://news.ycombinator.com/item?id=1834305. Since then, so much has changed and all for the better. Usage is up—way, way up. Premium users are helping the site run. Load times are approaching the goal of less than 100 ms (0.10 sec) per page. In short, things couldn’t be better." />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2012/01/16/2011-year-in-review/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>2011: Year in Review | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="2011: Year in Review" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Twelve months can be a quick flyby if you don’t stop to write everything down. Luckily, a habit I’ve kept since July 2009, when I started recording monthly goals for my project, is still going strong." />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2012/02/29/ssl-stripejs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>SSL &amp; Stripe.js | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="SSL &amp; Stripe.js" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Two big announcements today:" />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2012/03/01/going-full-time/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>From project to profession: going indie on NewsBlur | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="From project to profession: going indie on NewsBlur" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Exactly four months ago, Jason Kottke found my project, NewsBlur, and tweeted:" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>New mobile app for NewsBlur: Web Feeds for Nokia MeeGo | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="New mobile app for NewsBlur: Web Feeds for Nokia MeeGo" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="And what a gorgeous mobile app it is. App developer Róbert Márki just released Web Feeds, the first NewsBlur app for Nokia MeeGo. Take a look at these screenshots:" />
Expand Down
2 changes: 1 addition & 1 deletion blog/_site/2012/03/16/knight-news-challenge/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Knight News Challenge: NewsBlur | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Knight News Challenge: NewsBlur" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Knight News Challenge: NewsBlur" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
title="The NewsBlur Blog RSS feed"
href="/feed.xml" /><!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Building real-time feed updates for NewsBlur with Redis and WebSockets | The NewsBlur Blog</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta name="generator" content="Jekyll v4.3.4" />
<meta property="og:title" content="Building real-time feed updates for NewsBlur with Redis and WebSockets" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Today, NewsBlur is going real-time. Blogs using the PubSubHubbub protocol (PuSH), which includes all Blogger, Tumblr, and many Wordpress blogs, will instantaneously show new updates to subscribers on NewsBlur. Making this happen, while not for the faint of heart, was straight-forward enough that I’m sharing the recipe I used to get everything hooked up and running smoothly." />
Expand Down
Loading

0 comments on commit a445f4a

Please sign in to comment.