Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 75 additions & 37 deletions planet.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,32 @@
# [2]: https://github.com/jfg956/valkey-planet/blob/main/aggregation_and_content_policy.md#addingremoving-a-feed
#

title = Planet for the Valkey Community
url = https://valkey-demo.oursqlcommunity.org/
title = Planet Valkey
url = https://planet.valkey.io/

# ---=== Filtering ===---
# Initially, for showing the filtering icon, we ended feed name by "_filtered".
# But when starting to filter an existing feed, or ending its filtering,
# this meant changing the name and loosing its history.
# A new way of showing the filtering icon was built: prefixing the title.
# - a "_FI_ " prefix means the feed is filtered,
# - a "_NF_ " prefix means the feed is not filtered (if its name ends with _filtered).
# And yes, above is messy, feel free to suggest something better: https://github.com/jfg956/valkey-planet/issues

# ---=== Feed optional params ===---
# https://github.com/feedreader/pluto/blob/master/pluto-models/lib/pluto/schema.rb
# - twitter
# - avatar, location, github, rubygems, meetup
# - author, email (unclear if I can use these)
# Above are static, unclear how to add some without impacting pluto binaries...
# So we use:
# - avatar for linkedin,
# - location for author_link,
# - meetup for bluesky,
# - rubygems for mastodon,
# (github, author and email unused right now)
# And to simplify the maintenance of this file, a script rewrites it to expected Pluto tags (pluto_fetch_n_merge.sh).
# And yes, above is messy, feel free to suggest something better: https://github.com/jfg956/valkey-planet/issues

################################################
# Begin of associations / community initiatives.
Expand All @@ -22,6 +46,8 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Valkey Blog
link = https://valkey.io/blog/
feed = https://valkey.io/atom.xml
bluesky = https://bsky.app/profile/valkeyio.bsky.social
linkedin = https://www.linkedin.com/company/valkey/
twitter = valkey_io

# This feed produced Valkey content in the past, links below, so we add it for future content.
Expand All @@ -35,6 +61,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Linux Foundation - Press Releases
link = https://www.linuxfoundation.org/press
feed = https://siftrss.com/f/dXPRX6jW5m
linkedin = https://www.linkedin.com/company/the-linux-foundation/
twitter = linuxfoundation

# Has not produced content yet.
Expand All @@ -48,6 +75,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Percona Community Blog
link = https://percona.community/blog/
feed = https://siftrss.com/f/qqx3aKqy8K
mastodon = https://mastodon.social/@PerconaBytes
twitter = PerconaBytes

# End of associations / community initiatives.
Expand Down Expand Up @@ -148,7 +176,6 @@ url = https://valkey-demo.oursqlcommunity.org/
# feed =
# twitter = MemuraiHQ

# Needs to end with _filtered for filtering icon.
[com_momento_filtered]
# Original feed: https://gomomento.com/feed
# Too much non-Valkey content on original feed, so filtered via siftrss.
Expand All @@ -159,14 +186,14 @@ url = https://valkey-demo.oursqlcommunity.org/
twitter = momentohq

# Needs to end with _filtered for filtering icon.
[com_oracle_cloud_infra_filtered]
# Original feed: https://blogs.oracle.com/cloud-infrastructure/rss
# Too much non-Valkey content on original feed, so filtered via siftrss.
# Configuration: include / description / match regex / "/valkey/i".
title = Oracle Cloud Infrastructure Blog
link = https://blogs.oracle.com/cloud-infrastructure/
feed = https://siftrss.com/f/pnnbevMqXb
twitter = OracleCloud
#[com_oracle_cloud_infra_filtered]
# # Original feed: https://blogs.oracle.com/cloud-infrastructure/rss
# # Too much non-Valkey content on original feed, so filtered via siftrss.
# # Configuration: include / description / match regex / "/valkey/i".
# title = Oracle Cloud Infrastructure Blog
# link = https://blogs.oracle.com/cloud-infrastructure/
# feed = https://siftrss.com/f/pnnbevMqXb
# twitter = OracleCloud

# Needs to end with _filtered for filtering icon.
[com_percona_database_blog_filtered]
Expand All @@ -176,6 +203,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Percona Database Blog
link = https://www.percona.com/blog/
feed = https://siftrss.com/f/o8Yd5xgDWmm
linkedin = https://www.linkedin.com/company/percona/
twitter = Percona

# Needs to end with _filtered for filtering icon.
Expand Down Expand Up @@ -206,6 +234,8 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Ubuntu blog
link = https://ubuntu.com/blog
feed = https://siftrss.com/f/oq5vJZzdW3
linkedin = https://www.linkedin.com/company/canonical/
mastodon = https://ubuntu.social/@ubuntu
twitter = ubuntu

## End of vendor / commercial / organization blogs.
Expand All @@ -217,14 +247,14 @@ url = https://valkey-demo.oursqlcommunity.org/
# Please sort below by title.

# Needs to end with _filtered for filtering icon.
[perso_coding_matheus_filtered]
# Original feed: https://medium.com/feed/@codingmatheus
# Too much non-Valkey content on original feed, so filtered via siftrss.
# Configuration: include / content:encoded / match regex / "/valkey/i".
title = Coding Matheus
link = https://medium.com/@codingmatheus
feed = https://siftrss.com/f/w7oVkdqDXvk
twitter = codingmatheus
#[perso_coding_matheus_filtered]
Comment thread
jfg956 marked this conversation as resolved.
# # Original feed: https://medium.com/feed/@codingmatheus
# # Too much non-Valkey content on original feed, so filtered via siftrss.
# # Configuration: include / content:encoded / match regex / "/valkey/i".
# title = Coding Matheus
# link = https://medium.com/@codingmatheus
# feed = https://siftrss.com/f/w7oVkdqDXvk
# twitter = codingmatheus

# Needs to end with _filtered for filtering icon.
[perso_darioajr_filtered]
Expand All @@ -244,7 +274,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Fabricio Pedroso Jorge
link = https://fabriciojorge.medium.com/
feed = https://siftrss.com/f/8v51gja55w
#linkedin = https://www.linkedin.com/in/fabriciojorge/
linkedin = https://www.linkedin.com/in/fabriciojorge/

# Needs to end with _filtered for filtering icon.
[perso_jfg956_filtered]
Expand All @@ -254,6 +284,10 @@ url = https://valkey-demo.oursqlcommunity.org/
title = J-F Gagné's MySQL Blog
link = https://jfg-mysql.blogspot.com
feed = https://siftrss.com/f/VvnXdnQRLW
author_link = https://linktr.ee/jfg.mysql
bluesky = https://bsky.app/profile/jfg956.bsky.social
linkedin = https://www.linkedin.com/in/jfg956/
mastodon = https://fosstodon.org/@jfg956
twitter = jfg956

# Needs to end with _filtered for filtering icon.
Expand All @@ -264,7 +298,8 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Melroy's Blog
link = https://blog.melroy.org/
feed = https://siftrss.com/f/JzwLljAYrg0
#linkedin = https://www.linkedin.com/in/melroyvandenberg/
linkedin = https://www.linkedin.com/in/melroyvandenberg/
mastodon = https://mastodon.melroy.org/@melroy

# Unclear if this is perso, com, asso or news.
# As it looks like an individual initiative on Twitter
Expand Down Expand Up @@ -339,6 +374,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = Fedora Magazine
link = https://fedoramagazine.org/
feed = https://siftrss.com/f/kp59pzGlJv7
mastodon = https://fosstodon.org/@fedora
twitter = fedora

# Needs to end with _filtered for filtering icon.
Expand All @@ -363,14 +399,14 @@ url = https://valkey-demo.oursqlcommunity.org/
# This feed produced Valkey content in the past, links below, so we add it for future content.
# https://news.itsfoss.com/valkey-9-release/
# Needs to end with _filtered for filtering icon.
[news_itsfoss_filtered]
# Original https://news.itsfoss.com/latest/rss/
# Too much non-Valkey content on original feed, so filtered via siftrss.
# Configuration: include / description / match regex / "/valkey/i".
title = It's FOSS News
link = https://news.itsfoss.com/
feed = https://www.siftrss.com/f/jmqQRM1RKm
twitter = itsfoss2
#[news_itsfoss_filtered]
# # Original https://news.itsfoss.com/latest/rss/
# # Too much non-Valkey content on original feed, so filtered via siftrss.
# # Configuration: include / description / match regex / "/valkey/i".
# title = It's FOSS News
# link = https://news.itsfoss.com/
# feed = https://www.siftrss.com/f/jmqQRM1RKm
# twitter = itsfoss2

# This feed produced Valkey content in the past, links below, so we add it for future content.
# https://www.linuxtoday.com/blog/valkey-8-0-launches-with-promising-enhancements-in-speed-and-efficiency/
Expand Down Expand Up @@ -415,6 +451,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = TechCrunch
link = https://techcrunch.com/
feed = https://siftrss.com/f/GbLKlaGzez
bluesky = https://bsky.app/profile/techcrunch.com
twitter = TechCrunch

# This feed produced Valkey content in the past, links below, so we add it for future content.
Expand All @@ -430,14 +467,14 @@ url = https://valkey-demo.oursqlcommunity.org/
twitter = TechstrongIT

# Needs to end with _filtered for filtering icon.
[news_techzine_filtered]
# Original feed: https://www.techzine.eu/feed/
# Too much non-Valkey content on original feed, so filtered via siftrss.
# Configuration: include / content:encoded / match regex / "/valkey/i".
title = Techzine
link = https://www.techzine.eu/
feed = https://siftrss.com/f/nbBwq9Axwvx
twitter = techzine
#[news_techzine_filtered]
# # Original feed: https://www.techzine.eu/feed/
# # Too much non-Valkey content on original feed, so filtered via siftrss.
# # Configuration: include / content:encoded / match regex / "/valkey/i".
# title = Techzine
# link = https://www.techzine.eu/
# feed = https://siftrss.com/f/nbBwq9Axwvx
# twitter = techzine

# Needs to end with _filtered for filtering icon.
[news_thenewsstack_filtered]
Expand Down Expand Up @@ -467,6 +504,7 @@ url = https://valkey-demo.oursqlcommunity.org/
title = The Stack
link = https://www.thestack.technology/
feed = https://siftrss.com/f/vbr9pJ5XQ6A
linkedin = https://www.linkedin.com/company/stackpublishing/
# Below is commented, because even if it is the handle on the website, it does not exist on Twitter.
#twitter = stackpublishing

Expand Down
21 changes: 16 additions & 5 deletions sh/pluto_fetch_n_merge.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ set -euo pipefail

lock=/tmp/pluto_fetch_n_merge.lock

pluto_dir=/home/valkey-planets/valkey-demo
pluto_dir=/home/valkey-planets/planet.valkey.io
html_dir=./html
template=valkey-demo
template=planet
log_dir=./fnm_logs

mode="${1-}"
Expand Down Expand Up @@ -41,24 +41,35 @@ err_file="$log_dir/pluto_${date_val}.err"
touch $log_file
touch $err_file

# Rewrite ini file.
# As explained in a comment in the ini file, rewrite to Pluto tags.
sed_script="s/^ linkedin = / avatar = /"
sed_script="$sed_script;s/^ author_link = / location = /"
sed_script="$sed_script;s/^ bluesky = / meetup = /"
sed_script="$sed_script;s/^ mastodon = / rubygems = /"
rm -f planet.rewritten.ini
sed -e "$sed_script" planet.ini > planet.rewritten.ini
chmod a-w planet.rewritten.ini

# Run things, with logging.
{
{
epoch_start="$(date +%s)"

echo "$(date) - running pluto update."
pluto update
pluto update planet.rewritten.ini
echo

epoch_end="$(date +%s)"
echo "$(date) - update in $(($epoch_end - $epoch_start)) seconds."
echo

echo "$(date) - running pluto merge."
pluto merge -t $template -o $html_dir
pluto merge -t $template -o $html_dir planet.rewritten.ini
echo

epoch_end="$(date +%s)"
echo "$(date) - done in $(($epoch_end - $epoch_start)) seconds."
} >> $log_file 2>> $err_file

# EOF.

10 changes: 7 additions & 3 deletions template/atom.xml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,15 @@
<link href="<%= site.url %>"/>
<generator uri="http://feedreader.github.io/"><%= Pluto.generator %></generator>
<subtitle>A blog aggregator for the Valkey Community / Ecosystem</subtitle>

<%
items = site.items.latest.limit(100)
ItemCursor.new( items ).each do |item, new_date, new_feed|
title = item.feed.title
if title.start_with?("_FI_ ")
title = title[5, title.length-5]
elsif title.start_with?("_NF_ ")
title = title[5, title.length-5]
end
%>
<entry>
<title type="html"><%= CGI.escapeHTML(item.title) %></title>
Expand All @@ -27,10 +32,9 @@
<%= CGI.escapeHTML( textify( item.content )[0..400] ) %>
<% end %> [...]</content>
<author>
<name><%= CGI.escapeHTML(item.feed.title) %></name>
<name><%= CGI.escapeHTML(title) %></name>
<uri><%= CGI.escapeHTML(item.feed.url) %></uri>
</author>
</entry>
<% end %>

</feed>
Loading