Add feeds, mionr improvements and notes

This commit is contained in:
Schimon Jehudah 2023-11-22 11:47:34 +00:00
parent bbc25d25b9
commit f82550d24c
88 changed files with 2344 additions and 397 deletions

View file

@ -0,0 +1,2 @@
name, url, language, country
Joomla! Security Announcements, https://developer.joomla.org/security-centre.feed?type=rss, en-US, Worldwide
1 name url language country
2 Joomla! Security Announcements https://developer.joomla.org/security-centre.feed?type=rss en-US Worldwide

View file

@ -1,2 +1,3 @@
name, url, language, country
MetaBrainz Blog, https://blog.metabrainz.org/feed/, en-US, Worldwide
MP3 NFO Database, https://nfodb.ru/rss.php, en-US, Worldwide

1 name url language country
2 MetaBrainz Blog https://blog.metabrainz.org/feed/ en-US Worldwide
3 MP3 NFO Database https://nfodb.ru/rss.php en-US Worldwide

View file

@ -1,3 +1,4 @@
name, url, language, country
Linux-Unix Daily Fortunes - Quotes & Quips - motd.ambians.com, https://motd.ambians.com/out/rss/daily-fortunes.xml, en-US, USA
Shakespeare Quotes & Plays, https://shakespearequotesandplays.com/feed/, en-US, USA
Linux-Unix Daily Fortunes - Quotes & Quips - motd.ambians.com, https://motd.ambians.com/out/rss/daily-fortunes.xml, en-US, United States
Shakespeare Quotes & Plays, https://shakespearequotesandplays.com/feed/, en-US, United States
Chabad -- Daily Quote, https://www.chabad.org/tools/rss/dailyquote_rss.xml, en-US, United States

1 name url language country
2 Linux-Unix Daily Fortunes - Quotes & Quips - motd.ambians.com https://motd.ambians.com/out/rss/daily-fortunes.xml en-US USA United States
3 Shakespeare Quotes & Plays https://shakespearequotesandplays.com/feed/ en-US USA United States
4 Chabad -- Daily Quote https://www.chabad.org/tools/rss/dailyquote_rss.xml en-US United States

View file

@ -0,0 +1,39 @@
name, url, language, country
101 Cookbooks, https://www.101cookbooks.com/feed, en-US, United States
A Sweet Pea Chef, https://www.asweetpeachef.com/feed/, en-US, United States
Annalena's Heart(h)beat, https://www.annalenashearthbeat.com/feed/, en-US, United States
Ask Anna, https://askannamoseley.com/feed/, en-US, United States
Based Cooking, https://based.cooking/index.xml, en-US, United States
Bon Appétit, https://www.bonappetit.com/feed/rss, en-US, United States
Cook Nourish Bliss, https://cooknourishbliss.com/feed/, en-US, United States
Easy Cooking with Molly, https://www.easycookingwithmolly.com/feed/, en-US, United States
Easy Peasy Japanesey, http://www.easypeasyjapanesey.com/blogeasypeasyjapanesey?format=rss, en-US, United States
Farmers Forum, https://farmersforum.com/feed/, en-US, United States
FatHub, https://fathub.org/feed/, en-US, United States
Foodly, http://foodly.com/feed/, en-US, United States
Freeze Dry Guy, https://freezedryguy.com/feed/, en-US, United States
Heathen Herbs, https://heathenherbs.com/feed/, en-US, United States
Healthy and Natural World, https://www.healthyandnaturalworld.com/feed/, en-US, United States
Jamie Oliver, https://www.jamieoliver.com/feed/, en-US, United States
Jacob's Guide to Possibly Delicious Food, https://jacobwsmith.xyz/cookbook/rss.xml, en-US, United States
Juicing for Health, https://juicing-for-health.com/feed, en-US, United States
Love & Lemons, https://www.loveandlemons.com/feed/, en-US, United States
Melon's Thoughts - Recipes, https://thoughts.melonking.net/atom/?section=recipes, en-US, United States
Mercola.com, https://articles.mercola.com/sites/articles/rss.aspx, en-US, United States
Mindful, https://www.mindful.org/feed/, en-US, United States
Mythic food, https://themythicbox.com/feed/, en-US, United States
Nutrition Australia, https://nutritionaustralia.org/category/recipes/feed/, en-US, United States
Pinch of Yum, https://pinchofyum.com/feed, en-US, United States
Plant Based with Amy, https://plantbasedwithamy.com/feed/, en-US, United States
PUNCH, https://punchdrink.com/feed/, en-US, United States
Recipes on marginalia.nu, https://www.marginalia.nu/recipes/index.xml, en-US, United States
Recipes With Olive Oil, https://recipeswitholiveoil.com/feed/, en-US, United States
Sally's Baking Addiction, https://sallysbakingaddiction.com/feed/, en-US, United States
SheKnows, https://www.sheknows.com/food-and-recipes/feed/, en-US, United States
Step To Health, https://steptohealth.com/feed/, en-US, United States
Steve Kirsch, https://stevekirsch.substack.com/feed, en-US, United States
Stop Dirty Electricity, https://stopdirtyelectricity.com/feed/, en-US, United States
The Green Loot, https://thegreenloot.com/feed/, en-US, United States
The Pretty Bee, https://theprettybee.com/feed/, en-US, United States
Traditional Cooking School, https://traditionalcookingschool.com/feed/, en-US, United States
Wonderful Cook, https://wonderfulcook.com/feed/, en-US, United States
1 name url language country
2 101 Cookbooks https://www.101cookbooks.com/feed en-US United States
3 A Sweet Pea Chef https://www.asweetpeachef.com/feed/ en-US United States
4 Annalena's Heart(h)beat https://www.annalenashearthbeat.com/feed/ en-US United States
5 Ask Anna https://askannamoseley.com/feed/ en-US United States
6 Based Cooking https://based.cooking/index.xml en-US United States
7 Bon Appétit https://www.bonappetit.com/feed/rss en-US United States
8 Cook Nourish Bliss https://cooknourishbliss.com/feed/ en-US United States
9 Easy Cooking with Molly https://www.easycookingwithmolly.com/feed/ en-US United States
10 Easy Peasy Japanesey http://www.easypeasyjapanesey.com/blogeasypeasyjapanesey?format=rss en-US United States
11 Farmers Forum https://farmersforum.com/feed/ en-US United States
12 FatHub https://fathub.org/feed/ en-US United States
13 Foodly http://foodly.com/feed/ en-US United States
14 Freeze Dry Guy https://freezedryguy.com/feed/ en-US United States
15 Heathen Herbs https://heathenherbs.com/feed/ en-US United States
16 Healthy and Natural World https://www.healthyandnaturalworld.com/feed/ en-US United States
17 Jamie Oliver https://www.jamieoliver.com/feed/ en-US United States
18 Jacob's Guide to Possibly Delicious Food https://jacobwsmith.xyz/cookbook/rss.xml en-US United States
19 Juicing for Health https://juicing-for-health.com/feed en-US United States
20 Love & Lemons https://www.loveandlemons.com/feed/ en-US United States
21 Melon's Thoughts - Recipes https://thoughts.melonking.net/atom/?section=recipes en-US United States
22 Mercola.com https://articles.mercola.com/sites/articles/rss.aspx en-US United States
23 Mindful https://www.mindful.org/feed/ en-US United States
24 Mythic food https://themythicbox.com/feed/ en-US United States
25 Nutrition Australia https://nutritionaustralia.org/category/recipes/feed/ en-US United States
26 Pinch of Yum https://pinchofyum.com/feed en-US United States
27 Plant Based with Amy https://plantbasedwithamy.com/feed/ en-US United States
28 PUNCH https://punchdrink.com/feed/ en-US United States
29 Recipes on marginalia.nu https://www.marginalia.nu/recipes/index.xml en-US United States
30 Recipes With Olive Oil https://recipeswitholiveoil.com/feed/ en-US United States
31 Sally's Baking Addiction https://sallysbakingaddiction.com/feed/ en-US United States
32 SheKnows https://www.sheknows.com/food-and-recipes/feed/ en-US United States
33 Step To Health https://steptohealth.com/feed/ en-US United States
34 Steve Kirsch https://stevekirsch.substack.com/feed en-US United States
35 Stop Dirty Electricity https://stopdirtyelectricity.com/feed/ en-US United States
36 The Green Loot https://thegreenloot.com/feed/ en-US United States
37 The Pretty Bee https://theprettybee.com/feed/ en-US United States
38 Traditional Cooking School https://traditionalcookingschool.com/feed/ en-US United States
39 Wonderful Cook https://wonderfulcook.com/feed/ en-US United States

View file

@ -15,3 +15,5 @@ Latest extensions in GNOME Shell Extensions, https://extensions.gnome.org/rss/,
DistroWatch.com: News, https://distrowatch.com/news/dw.xml, en-US, Worldwide
GreasyFork: Recently Updates Userscripts, https://greasyfork.org/en/scripts.atom?sort=updated, en-US, Worldwide
xfce-look.org - Latest Products, https://www.xfce-look.org/content.rdf, en-US, Worldwide
Newest Python PEPs, https://peps.python.org/peps.rss/, en-US, Worldwide
Joomla! Extensions, https://extensions.joomla.org/browse/new/?format=feed&type=rss, en-US, Worldwide

1 name url language country
15 DistroWatch.com: News https://distrowatch.com/news/dw.xml en-US Worldwide
16 GreasyFork: Recently Updates Userscripts https://greasyfork.org/en/scripts.atom?sort=updated en-US Worldwide
17 xfce-look.org - Latest Products https://www.xfce-look.org/content.rdf en-US Worldwide
18 Newest Python PEPs https://peps.python.org/peps.rss/ en-US Worldwide
19 Joomla! Extensions https://extensions.joomla.org/browse/new/?format=feed&type=rss en-US Worldwide

View file

@ -0,0 +1,2 @@
name, url, language, country
Trip101, https://trip101.com/feed, en-US, United States
1 name url language country
2 Trip101 https://trip101.com/feed en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Job Openings at EFF, https://www.eff.org/about/opportunities/jobs/feed, en-US, United States
1 name url language country
2 Job Openings at EFF https://www.eff.org/about/opportunities/jobs/feed en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Webring Enthusiasts of the Fediverse, https://fediverse-webring-enthusiasts.glitch.me/index.opml, en-US, United States
1 name url language country
2 Webring Enthusiasts of the Fediverse https://fediverse-webring-enthusiasts.glitch.me/index.opml en-US United States

View file

@ -1,2 +1,3 @@
name, url, language, country
Panic Blog, https://www.panic.com/blog/feed/, en-US, United States
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland

1 name url language country
2 Panic Blog https://www.panic.com/blog/feed/ en-US United States
3 Necuno Solutions https://necunos.com/feed.xml en-US Finland

View file

@ -0,0 +1,2 @@
name, url, language, country
Confluent: Data in motion, https://www.confluent.io/rss.xml, en-US, United States
1 name url language country
2 Confluent: Data in motion https://www.confluent.io/rss.xml en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Venipak, https://venipak.com/feed/, en-US, Nederland
1 name url language country
2 Venipak https://venipak.com/feed/ en-US Nederland

View file

@ -0,0 +1,8 @@
name, url, language, country
PyCon US, https://fosstodon.org/@pycon.rss, en-US, United States
PyTexas, https://fosstodon.org/@pytexas.rss, en-US, United States
PyConZA, https://fosstodon.org/@pyconza.rss, en-US, South Africa
PyCon Sweden, https://fosstodon.org/@pyconsweden.rss, en-US, Sweden
FSFE Events, https://fsfe.org/events/events.en.rss, en-US, Germany
FSFE Events (FR), https://fsfe.org/events/events.fr.rss, fr-FR, Germany
FSFE Events (DE), https://fsfe.org/events/events.de.rss, de-DE, Germany
1 name url language country
2 PyCon US https://fosstodon.org/@pycon.rss en-US United States
3 PyTexas https://fosstodon.org/@pytexas.rss en-US United States
4 PyConZA https://fosstodon.org/@pyconza.rss en-US South Africa
5 PyCon Sweden https://fosstodon.org/@pyconsweden.rss en-US Sweden
6 FSFE Events https://fsfe.org/events/events.en.rss en-US Germany
7 FSFE Events (FR) https://fsfe.org/events/events.fr.rss fr-FR Germany
8 FSFE Events (DE) https://fsfe.org/events/events.de.rss de-DE Germany

View file

@ -0,0 +1,2 @@
name, url, language, country
Blender Developer Forum - Meetings, https://devtalk.blender.org/c/meetings/28.rss, en-US, USA
1 name url language country
2 Blender Developer Forum - Meetings https://devtalk.blender.org/c/meetings/28.rss en-US USA

2
datasets/forums/cms.csv Normal file
View file

@ -0,0 +1,2 @@
name, url, language, country
Zola, https://zola.discourse.group/posts.rss, en-US, Worldwide
1 name url language country
2 Zola https://zola.discourse.group/posts.rss en-US Worldwide

View file

@ -1,2 +1,3 @@
name, url, language, country
SQLite, https://sqlite.org/forum/timeline.rss, en-US, Worldwide
Camen Design Forum, https://forum.camendesign.com/index.xml, en-US, United States

1 name url language country
2 SQLite https://sqlite.org/forum/timeline.rss en-US Worldwide
3 Camen Design Forum https://forum.camendesign.com/index.xml en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Blender Developer Forum - Latest posts, https://devtalk.blender.org/posts.rss, en-US, USA
1 name url language country
2 Blender Developer Forum - Latest posts https://devtalk.blender.org/posts.rss en-US USA

View file

@ -0,0 +1,4 @@
name, url, language, country
News Service Bund [DE], https://www.newsd.admin.ch/newsd/feeds/rss?lang=de&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date=, de-CH, Switzerland
News Service Bund [FR], https://www.newsd.admin.ch/newsd/feeds/rss?lang=fr&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date=, fr-CH, Switzerland
News Service Bund [IT], https://www.newsd.admin.ch/newsd/feeds/rss?lang=it&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date=, it-CH, Switzerland
1 name url language country
2 News Service Bund [DE] https://www.newsd.admin.ch/newsd/feeds/rss?lang=de&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date= de-CH Switzerland
3 News Service Bund [FR] https://www.newsd.admin.ch/newsd/feeds/rss?lang=fr&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date= fr-CH Switzerland
4 News Service Bund [IT] https://www.newsd.admin.ch/newsd/feeds/rss?lang=it&org-nr=1&topic=&keyword=&offer-nr=&catalogueElement=&kind=M%2CR&start_date=2021-07-01&end_date= it-CH Switzerland

File diff suppressed because it is too large Load diff

View file

@ -1 +1,2 @@
name, url, language, country
Chiportal, https://chiportal.co.il/feed/, he-IL, Israel

1 name url language country
2 Chiportal https://chiportal.co.il/feed/ he-IL Israel

View file

@ -1,2 +1,3 @@
name, url, language, country
Mail Online - Australia Home, https://www.dailymail.co.uk/auhome/index.rss, en-US, Australia
בית חבד מלבורן, https://chabadmel.com/feed/, he-IL, Australia

1 name url language country
2 Mail Online - Australia Home https://www.dailymail.co.uk/auhome/index.rss en-US Australia
3 בית חבד מלבורן https://chabadmel.com/feed/ he-IL Australia

View file

@ -1,3 +1,4 @@
name, url, language, country
CryptoSlate, https://cryptoslate.com/feed/, en-US, USA
CryptoPotato, https://cryptopotato.com/feed/, en-US, USA
CryptoSlate, https://cryptoslate.com/feed/, en-US, United States
CryptoPotato, https://cryptopotato.com/feed/, en-US, United States
Decrypt, https://decrypt.co/feed, , en-US, United States

1 name name, url, language, country url language country
2 CryptoSlate CryptoSlate, https://cryptoslate.com/feed/, en-US, United States https://cryptoslate.com/feed/ en-US USA
3 CryptoPotato CryptoPotato, https://cryptopotato.com/feed/, en-US, United States https://cryptopotato.com/feed/ en-US USA
4 Decrypt, https://decrypt.co/feed, , en-US, United States

View file

@ -0,0 +1,26 @@
name, url, language, country
Linux Professional Institute (LPI), https://www.lpi.org/feed/, en-US, Canada
LinuxConfig, https://linuxconfig.org/feed, en-US, Worldwide
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
Anjan Momi, https://momi.ca/feed.xml, en-US, United States
postmarketOS, https://postmarketos.org/blog/feed.atom, en-US, United States
PureTryOut (Alpine Linux, postmarketOS), https://mastodon.fam-ribbers.com/@bart.rss, en-US, Netherlands
Blog on Bart Ribbers - PureTryOut (Alpine Linux, postmarketOS), https://fam-ribbers.com/blog/index.xml, en-US, Netherlands
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
Alpine Linux, https://fosstodon.org/@alpinelinux.rss, en-US, United States
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
9to5Linux, https://9to5linux.com/feed, en-US, United States
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
GNOME adventures in mobile, https://blogs.gnome.org/pabloyoyoista/feed/, en-US, United States
Akademy, https://floss.social/@akademy.rss, en-US, United States
KDE, https://floss.social/@kde.rss, en-US, United States
Justine Smithies blog, https://justine.smithies.me.uk/atom.xml, en-US, United States
Justine Smithies, https://fosstodon.org/@JustineSmithies.rss, en-US, United States
TuxPhones, https://tuxphones.com/rss/, en-US, United States
Collabora Office and Collabora Online, https://www.collaboraoffice.com/feed/, en-US, United States
LGUG2Z, https://lgug2z.com/index.xml, en-US, United States
Hugo Barrera's site, https://whynothugo.nl/posts.xml, en-US, United States
Solene'%, https://dataswamp.org/~solene/rss.xml, en-US, United States
Solene'%, https://dataswamp.org/~solene/rss-html.xml, en-US, United States
1 name, url, language, country
2 Linux Professional Institute (LPI), https://www.lpi.org/feed/, en-US, Canada
3 LinuxConfig, https://linuxconfig.org/feed, en-US, Worldwide
4 The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
5 Anjan Momi, https://momi.ca/feed.xml, en-US, United States
6 postmarketOS, https://postmarketos.org/blog/feed.atom, en-US, United States
7 PureTryOut (Alpine Linux, postmarketOS), https://mastodon.fam-ribbers.com/@bart.rss, en-US, Netherlands
8 Blog on Bart Ribbers - PureTryOut (Alpine Linux, postmarketOS), https://fam-ribbers.com/blog/index.xml, en-US, Netherlands
9 Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
10 Alpine Linux, https://fosstodon.org/@alpinelinux.rss, en-US, United States
11 ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
12 FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
13 FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
14 9to5Linux, https://9to5linux.com/feed, en-US, United States
15 FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
16 GNOME adventures in mobile, https://blogs.gnome.org/pabloyoyoista/feed/, en-US, United States
17 Akademy, https://floss.social/@akademy.rss, en-US, United States
18 KDE, https://floss.social/@kde.rss, en-US, United States
19 Justine Smithies blog, https://justine.smithies.me.uk/atom.xml, en-US, United States
20 Justine Smithies, https://fosstodon.org/@JustineSmithies.rss, en-US, United States
21 TuxPhones, https://tuxphones.com/rss/, en-US, United States
22 Collabora Office and Collabora Online, https://www.collaboraoffice.com/feed/, en-US, United States
23 LGUG2Z, https://lgug2z.com/index.xml, en-US, United States
24 Hugo Barrera's site, https://whynothugo.nl/posts.xml, en-US, United States
25 Solene'%, https://dataswamp.org/~solene/rss.xml, en-US, United States
26 Solene'%, https://dataswamp.org/~solene/rss-html.xml, en-US, United States

7
datasets/news/code.csv Normal file
View file

@ -0,0 +1,7 @@
name, url, language, country
Tristan B. Velloza Kildaire, https://gleasonator.com/@deavmi, en-ZA, South Africa
Karl Bartel's Website, https://www.karl.berlin/atom.xml, en-US, Germany
Newest Python PEPs, https://peps.python.org/peps.rss/, en-US, Worldwide
Victor Stinner blog 3, https://vstinner.github.io/feeds/all.atom.xml, en-US, Worldwide
Victor Stinner 🐍, https://mamot.fr/@vstinner.rss, en-US, Worldwide
camen design, https://camendesign.com/rss, en-US, USA
1 name url language country
2 Tristan B. Velloza Kildaire https://gleasonator.com/@deavmi en-ZA South Africa
3 Karl Bartel's Website https://www.karl.berlin/atom.xml en-US Germany
4 Newest Python PEPs https://peps.python.org/peps.rss/ en-US Worldwide
5 Victor Stinner blog 3 https://vstinner.github.io/feeds/all.atom.xml en-US Worldwide
6 Victor Stinner 🐍 https://mamot.fr/@vstinner.rss en-US Worldwide
7 camen design https://camendesign.com/rss en-US USA

View file

@ -0,0 +1,49 @@
name, url, language, country
camen design, https://camendesign.com/rss, en-US, USA
computers are bad, https://computer.rip/rss.xml, en-US, Worldwide
Jacob McCormick, https://mccor.xyz/rss.xml, en-US, United States
ju_hnny5, https://blog.jbriault.fr/rss/, fr-FR, France
Lazy Reading | The Cyber Vanguard, https://cyber.dabamos.de/blog/feed.rss, en-US, United States
XXIIVV, https://wiki.xxiivv.com/links/rss.xml, en-US, Canada
Proycon's website, https://proycon.anaproy.nl/rss.xml, en-US, Netherlands
Nathan R. Yergler, https://yergler.net/feed.xml, en-US, United States
ynet - דיגיטל, https://www.ynet.co.il/Integration/StoryRss544.xml, he-IL, Israel
schollz, https://schollz.com/index.xml, en-US, United States
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
Newest Python PEPs, https://peps.python.org/peps.rss/, en-US, Worldwide
Chiportal, https://chiportal.co.il/feed/, he-IL, Israel
Hackaday, https://hackaday.com/feed/, en-US, United States
Amethyst Reese, https://noswap.com/feed.xml, en-US, United States
electro·pizza, https://electro.pizza/feed.xml, en-US, United States
VironIT, https://vironit.com/feed/, en-US, Georgia
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
Flipper Blog, https://blog.flipper.net/rss/, en-US, United States
Tristan B. Velloza Kildaire, https://gleasonator.com/@deavmi, en-ZA, South Africa
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
Free Software Foundation Europe, https://mastodon.social/@fsfe.rss, en-US, Germany
heise online News, https://www.heise.de/rss/heise-atom.xml, de-DE, Germany
c't Magazin, https://social.heise.de/@ct_Magazin.rss, de-DE, Germany
GNOME adventures in mobile, https://blogs.gnome.org/pabloyoyoista/feed/, en-US, United States
EFF's Deeplinks Blog, https://www.eff.org/rss/updates.xml, en-US, United States
Heracles Papatheodorou • heracl.es, https://heracl.es/feed.xml, en-US, United States
Aphrodite.dev, https://www.aphrodite.dev/~blog/feed.xml, en-US, United States
Quinlan Pfiffer's Site, https://q.pfiffer.org/feed.xml, en-US, United States
mrshll.com, https://mrshll.com/feed.rss, en-US, United States
9to5Linux, https://9to5linux.com/feed, en-US, United States
TuxPhones, https://tuxphones.com/rss/, en-US, United States
OpenSource.net, https://opensource.net/feed/, en-US, United States
Collabora Office and Collabora Online, https://www.collaboraoffice.com/feed/, en-US, United States
LGUG2Z, https://lgug2z.com/index.xml, en-US, United States
Karl Bartel's Website, https://www.karl.berlin/atom.xml, en-US, Germany
Victor Stinner blog 3, https://vstinner.github.io/feeds/all.atom.xml, en-US, Worldwide
Victor Stinner 🐍, https://mamot.fr/@vstinner.rss, en-US, Worldwide
Hugo Barrera's site, https://whynothugo.nl/posts.xml, en-US, United States
Ηρακλής Παπαθεοδώρου • heracl.es, https://heracl.es/el/feed.xml, el-GR, Greece
Heracles Papatheodorou • heracl.es, https://heracl.es/feed.xml, en-US, Greece
Solene'%, https://dataswamp.org/~solene/rss.xml, en-US, United States
Solene'%, https://dataswamp.org/~solene/rss-html.xml, en-US, United States
Camen Design Forum, https://forum.camendesign.com/index.xml, en-US, United States
dthompson, https://dthompson.us/feed.xml, en-US, Worldwide
1 name url language country
2 camen design https://camendesign.com/rss en-US USA
3 computers are bad https://computer.rip/rss.xml en-US Worldwide
4 Jacob McCormick https://mccor.xyz/rss.xml en-US United States
5 ju_hnny5 https://blog.jbriault.fr/rss/ fr-FR France
6 Lazy Reading | The Cyber Vanguard https://cyber.dabamos.de/blog/feed.rss en-US United States
7 XXIIVV https://wiki.xxiivv.com/links/rss.xml en-US Canada
8 Proycon's website https://proycon.anaproy.nl/rss.xml en-US Netherlands
9 Nathan R. Yergler https://yergler.net/feed.xml en-US United States
10 ynet - דיגיטל https://www.ynet.co.il/Integration/StoryRss544.xml he-IL Israel
11 schollz https://schollz.com/index.xml en-US United States
12 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US United States
13 Newest Python PEPs https://peps.python.org/peps.rss/ en-US Worldwide
14 Chiportal https://chiportal.co.il/feed/ he-IL Israel
15 Hackaday https://hackaday.com/feed/ en-US United States
16 Amethyst Reese https://noswap.com/feed.xml en-US United States
17 electro·pizza https://electro.pizza/feed.xml en-US United States
18 VironIT https://vironit.com/feed/ en-US Georgia
19 Necuno Solutions https://necunos.com/feed.xml en-US Finland
20 Flipper Blog https://blog.flipper.net/rss/ en-US United States
21 Tristan B. Velloza Kildaire https://gleasonator.com/@deavmi en-ZA South Africa
22 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
23 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
24 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
25 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany
26 Free Software Foundation Europe https://mastodon.social/@fsfe.rss en-US Germany
27 heise online News https://www.heise.de/rss/heise-atom.xml de-DE Germany
28 c't Magazin https://social.heise.de/@ct_Magazin.rss de-DE Germany
29 GNOME adventures in mobile https://blogs.gnome.org/pabloyoyoista/feed/ en-US United States
30 EFF's Deeplinks Blog https://www.eff.org/rss/updates.xml en-US United States
31 Heracles Papatheodorou • heracl.es https://heracl.es/feed.xml en-US United States
32 Aphrodite.dev https://www.aphrodite.dev/~blog/feed.xml en-US United States
33 Quinlan Pfiffer's Site https://q.pfiffer.org/feed.xml en-US United States
34 mrshll.com https://mrshll.com/feed.rss en-US United States
35 9to5Linux https://9to5linux.com/feed en-US United States
36 TuxPhones https://tuxphones.com/rss/ en-US United States
37 OpenSource.net https://opensource.net/feed/ en-US United States
38 Collabora Office and Collabora Online https://www.collaboraoffice.com/feed/ en-US United States
39 LGUG2Z https://lgug2z.com/index.xml en-US United States
40 Karl Bartel's Website https://www.karl.berlin/atom.xml en-US Germany
41 Victor Stinner blog 3 https://vstinner.github.io/feeds/all.atom.xml en-US Worldwide
42 Victor Stinner 🐍 https://mamot.fr/@vstinner.rss en-US Worldwide
43 Hugo Barrera's site https://whynothugo.nl/posts.xml en-US United States
44 Ηρακλής Παπαθεοδώρου • heracl.es https://heracl.es/el/feed.xml el-GR Greece
45 Heracles Papatheodorou • heracl.es https://heracl.es/feed.xml en-US Greece
46 Solene'% https://dataswamp.org/~solene/rss.xml en-US United States
47 Solene'% https://dataswamp.org/~solene/rss-html.xml en-US United States
48 Camen Design Forum https://forum.camendesign.com/index.xml en-US United States
49 dthompson https://dthompson.us/feed.xml en-US Worldwide

View file

@ -1,11 +0,0 @@
name, url, language, country
computers are bad, https://computer.rip/rss.xml, en-US, Worldwide
Jacob McCormick, https://mccor.xyz/rss.xml, en-US, USA
ju_hnny5, https://blog.jbriault.fr/rss/, fr-FR, France
Lazy Reading | The Cyber Vanguard, https://cyber.dabamos.de/blog/feed.rss, en-US, USA
XXIIVV, https://wiki.xxiivv.com/links/rss.xml, en-US, Canada
Proycon's website, https://proycon.anaproy.nl/rss.xml, en-US, Netherlands
Nathan R. Yergler, https://yergler.net/feed.xml, en-US, USA
ynet - דיגיטל, https://www.ynet.co.il/Integration/StoryRss544.xml, he-IL, Israel
schollz, https://schollz.com/index.xml, en-US, USA
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, USA
1 name url language country
2 computers are bad https://computer.rip/rss.xml en-US Worldwide
3 Jacob McCormick https://mccor.xyz/rss.xml en-US USA
4 ju_hnny5 https://blog.jbriault.fr/rss/ fr-FR France
5 Lazy Reading | The Cyber Vanguard https://cyber.dabamos.de/blog/feed.rss en-US USA
6 XXIIVV https://wiki.xxiivv.com/links/rss.xml en-US Canada
7 Proycon's website https://proycon.anaproy.nl/rss.xml en-US Netherlands
8 Nathan R. Yergler https://yergler.net/feed.xml en-US USA
9 ynet - דיגיטל https://www.ynet.co.il/Integration/StoryRss544.xml he-IL Israel
10 schollz https://schollz.com/index.xml en-US USA
11 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US USA

View file

@ -1,2 +1,3 @@
name, url, language, country
The Smoking Gun RSS, http://thesmokinggun.com/rss, en-US, USA
Tampa Free Press, https://www.tampafp.com/feed/, en-US, USA

1 name url language country
2 The Smoking Gun RSS http://thesmokinggun.com/rss en-US USA
3 Tampa Free Press https://www.tampafp.com/feed/ en-US USA

View file

@ -1,6 +1,13 @@
name, url, language, country
Jerm Warfare, https://jermwarfare.com/feed, en-US, USA
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA
The Public Domain Review, https://publicdomainreview.org/rss.xml, en-US, USA
ynet - תרבות, https://www.ynet.co.il/Integration/StoryRss538.xml, he-IL, Israel
ynet - Culture, https://www.ynet.co.il/Integration/StoryRss3086.xml, en-IL, Israel
ynet - חדר משלך, https://www.ynet.co.il/Integration/StoryRss4111.xml, he-IL, Israel
Tampa Free Press, https://www.tampafp.com/feed/, en-US, USA
Deutsche Welle: DW.com KULTUR & LEBEN, http://rss.dw.com/atom/rss-de-cul, de-DE, Germany
Deutsche Welle: DW.com KULTUR & LEBEN: BÜCHER, http://rss.dw.com/atom/rss-de-cul-buch, de-DE, Germany
Deutsche Welle: DW.com KULTUR & LEBEN: FILM, http://rss.dw.com/atom/rss-de-cul-film, de-DE, Germany
Deutsche Welle: DW.com KULTUR & LEBEN: MUSIK, http://rss.dw.com/atom/rss-de-cul-musik, de-DE, Germany
Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN, http://rss.dw.com/atom/rss-de-deutschlandentdecken, de-DE, Germany

1 name url language country
2 Jerm Warfare https://jermwarfare.com/feed en-US USA
3 The Organic Prepper https://www.theorganicprepper.com/feed/ en-US USA
4 The Public Domain Review https://publicdomainreview.org/rss.xml en-US USA
5 ynet - תרבות https://www.ynet.co.il/Integration/StoryRss538.xml he-IL Israel
6 ynet - Culture https://www.ynet.co.il/Integration/StoryRss3086.xml en-IL Israel
7 ynet - חדר משלך https://www.ynet.co.il/Integration/StoryRss4111.xml he-IL Israel
8 Tampa Free Press https://www.tampafp.com/feed/ en-US USA
9 Deutsche Welle: DW.com KULTUR & LEBEN http://rss.dw.com/atom/rss-de-cul de-DE Germany
10 Deutsche Welle: DW.com KULTUR & LEBEN: BÜCHER http://rss.dw.com/atom/rss-de-cul-buch de-DE Germany
11 Deutsche Welle: DW.com KULTUR & LEBEN: FILM http://rss.dw.com/atom/rss-de-cul-film de-DE Germany
12 Deutsche Welle: DW.com KULTUR & LEBEN: MUSIK http://rss.dw.com/atom/rss-de-cul-musik de-DE Germany
13 Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN http://rss.dw.com/atom/rss-de-deutschlandentdecken de-DE Germany

View file

@ -1 +1,8 @@
name, url, language, country
Michael W Lucas, https://mwl.io/feed, en-US, United States
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
Flipper Blog, https://blog.flipper.net/rss/, en-US, United States
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany

1 name url language country
2 Michael W Lucas https://mwl.io/feed en-US United States
3 Necuno Solutions https://necunos.com/feed.xml en-US Finland
4 Flipper Blog https://blog.flipper.net/rss/ en-US United States
5 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
6 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
7 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
8 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany

View file

@ -1,2 +1,12 @@
name, url, language, country
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, USA
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
Flipper Blog, https://blog.flipper.net/rss/, en-US, United States
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
heise online News, https://www.heise.de/rss/heise-atom.xml, de-DE, Germany
c't Magazin, https://social.heise.de/@ct_Magazin.rss, de-DE, Germany
electro·pizza, https://electro.pizza/feed.xml, en-US, United States
Ηρακλής Παπαθεοδώρου • heracl.es, https://heracl.es/el/feed.xml, el-GR, Greece
Heracles Papatheodorou • heracl.es, https://heracl.es/feed.xml, en-US, Greece

1 name url language country
2 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US USA United States
3 Flipper Blog https://blog.flipper.net/rss/ en-US United States
4 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
5 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
6 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
7 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany
8 heise online News https://www.heise.de/rss/heise-atom.xml de-DE Germany
9 c't Magazin https://social.heise.de/@ct_Magazin.rss de-DE Germany
10 electro·pizza https://electro.pizza/feed.xml en-US United States
11 Ηρακλής Παπαθεοδώρου • heracl.es https://heracl.es/el/feed.xml el-GR Greece
12 Heracles Papatheodorou • heracl.es https://heracl.es/feed.xml en-US Greece

View file

@ -1,3 +1,5 @@
name, url, language, country
Mail Online - TV & showbiz, https://www.dailymail.co.uk/tvshowbiz/index.rss, en-US, USA
Mail Online, https://www.dailymail.co.uk/news/index.rss, en-US, USA
Deutsche Welle: DW.com KULTUR & LEBEN: MUSIK, http://rss.dw.com/atom/rss-de-cul-musik, de-DE, Germany
Deutsche Welle: DW.com KULTUR & LEBEN: FILM, http://rss.dw.com/atom/rss-de-cul-film, de-DE, Germany

1 name url language country
2 Mail Online - TV & showbiz https://www.dailymail.co.uk/tvshowbiz/index.rss en-US USA
3 Mail Online https://www.dailymail.co.uk/news/index.rss en-US USA
4 Deutsche Welle: DW.com KULTUR & LEBEN: MUSIK http://rss.dw.com/atom/rss-de-cul-musik de-DE Germany
5 Deutsche Welle: DW.com KULTUR & LEBEN: FILM http://rss.dw.com/atom/rss-de-cul-film de-DE Germany

View file

@ -1,3 +1,3 @@
name, url, language, country
Mom on a Mission, https://www.mom-on-a-mission.blog/all-posts?format=rss, en-US, USA
Mom on a Mission, https://www.mom-on-a-mission.blog/all-posts?format=rss, en-US, United States
ynet - הורים, https://www.ynet.co.il/Integration/StoryRss3052.xml, he-IL, Israel

1 name url language country
2 Mom on a Mission https://www.mom-on-a-mission.blog/all-posts?format=rss en-US USA United States
3 ynet - הורים https://www.ynet.co.il/Integration/StoryRss3052.xml he-IL Israel

4
datasets/news/farm.csv Normal file
View file

@ -0,0 +1,4 @@
name, url, language, country
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
כנס מדיה, https://kenes-media.com/feed/, he-IL, Israel
1 name url language country
2 The Organic Prepper https://www.theorganicprepper.com/feed/ en-US United States
3 כנס מדיה https://kenes-media.com/feed/ he-IL Israel

View file

@ -1,10 +1,11 @@
name, url, language, country
ynet - מדע, https://www.ynet.co.il/Integration/StoryRss2142.xml, he-IL, Israel
Stories by Williams, https://storiesbywilliams.com/feed/, en-US, USA
SciTechDaily, https://scitechdaily.com/feed/, en-US, USA
ScienceDaily, https://www.sciencedaily.com/rss/all.xml, en-US, USA
ScienceAlert, https://www.sciencealert.com/feed, en-US, USA
NASA Image of the Day, https://www.nasa.gov/feeds/iotd-feed, en-US, USA
Futurism, https://futurism.com/feed, en-US, USA
Nature, https://www.nature.com/nature.rss, en-US, USA
Mail Online - Science & tech, https://www.dailymail.co.uk/sciencetech/index.rss, en-US, UK
Stories by Williams, https://storiesbywilliams.com/feed/, en-US, United States
SciTechDaily, https://scitechdaily.com/feed/, en-US, United States
ScienceDaily, https://www.sciencedaily.com/rss/all.xml, en-US, United States
ScienceAlert, https://www.sciencealert.com/feed, en-US, United States
NASA Image of the Day, https://www.nasa.gov/feeds/iotd-feed, en-US, United States
Futurism, https://futurism.com/feed, en-US, United States
Nature, https://www.nature.com/nature.rss, en-US, United States
Mail Online - Science & tech, https://www.dailymail.co.uk/sciencetech/index.rss, en-US, United Kingdom
New Atlas, https://newatlas.com/index.rss, en-US, United States

1 name url language country
2 ynet - מדע https://www.ynet.co.il/Integration/StoryRss2142.xml he-IL Israel
3 Stories by Williams https://storiesbywilliams.com/feed/ en-US USA United States
4 SciTechDaily https://scitechdaily.com/feed/ en-US USA United States
5 ScienceDaily https://www.sciencedaily.com/rss/all.xml en-US USA United States
6 ScienceAlert https://www.sciencealert.com/feed en-US USA United States
7 NASA Image of the Day https://www.nasa.gov/feeds/iotd-feed en-US USA United States
8 Futurism https://futurism.com/feed en-US USA United States
9 Nature https://www.nature.com/nature.rss en-US USA United States
10 Mail Online - Science & tech https://www.dailymail.co.uk/sciencetech/index.rss en-US UK United Kingdom
11 New Atlas https://newatlas.com/index.rss en-US United States

View file

@ -10,3 +10,5 @@ nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, USA
Jerm Warfare, https://jermwarfare.com/feed, en-US, USA
Daily Stormer, https://dailystormer.in/feed/, en-US, USA
Associated Press News, https://apnews.com/index.rss, en-US, USA
Deutsche Welle: DW.com NACHRICHTEN, http://rss.dw.com/atom/rss-de-news, de-DE, Germany
Real Liberty Media, https://www.reallibertymedia.com/feed/, en-US, United States

1 name url language country
10 Jerm Warfare https://jermwarfare.com/feed en-US USA
11 Daily Stormer https://dailystormer.in/feed/ en-US USA
12 Associated Press News https://apnews.com/index.rss en-US USA
13 Deutsche Welle: DW.com NACHRICHTEN http://rss.dw.com/atom/rss-de-news de-DE Germany
14 Real Liberty Media https://www.reallibertymedia.com/feed/ en-US United States

View file

@ -0,0 +1,9 @@
name, url, language, country
Deutsche Welle: DW.com DEUTSCHE WELLE GESAMT, http://rss.dw.com/atom/rss-de-all, de-DE, Germany
Deutsche Welle: DW.com THEMEN DES TAGES, http://rss.dw.com/atom/rss-de-top, de-DE, Germany
Deutsche Welle: DW.com NACHRICHTEN, http://rss.dw.com/atom/rss-de-news, de-DE, Germany
Deutsche Welle: DW.com WISSENSCHAFT, http://rss.dw.com/atom/rss-de-wissenschaft, de-DE, Germany
Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN, http://rss.dw.com/atom/rss-de-deutschlandentdecken, de-DE, Germany
Deutsche Welle: DW.com PRESSE, http://rss.dw.com/atom/presse, de-DE, Germany
"ZEIT ONLINE | Nachrichten, News, Hintergründe und Debatten", https://newsfeed.zeit.de/index, de-DE, Germany
strukturart.com latest articles,https://strukturart.com/feed, de-DE, Germany
1 name url language country
2 Deutsche Welle: DW.com DEUTSCHE WELLE GESAMT http://rss.dw.com/atom/rss-de-all de-DE Germany
3 Deutsche Welle: DW.com THEMEN DES TAGES http://rss.dw.com/atom/rss-de-top de-DE Germany
4 Deutsche Welle: DW.com NACHRICHTEN http://rss.dw.com/atom/rss-de-news de-DE Germany
5 Deutsche Welle: DW.com WISSENSCHAFT http://rss.dw.com/atom/rss-de-wissenschaft de-DE Germany
6 Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN http://rss.dw.com/atom/rss-de-deutschlandentdecken de-DE Germany
7 Deutsche Welle: DW.com PRESSE http://rss.dw.com/atom/presse de-DE Germany
8 ZEIT ONLINE | Nachrichten, News, Hintergründe und Debatten https://newsfeed.zeit.de/index de-DE Germany
9 strukturart.com latest articles https://strukturart.com/feed de-DE Germany

View file

@ -1,9 +1,13 @@
name, url, language, country
The Corbett Report, https://www.corbettreport.com/feed/, en-US, Japan
ZeroGov, https://zerogov.com/feed/, en-US, USA
Daily Stormer, https://dailystormer.in/feed/, en-US, USA
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA
The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, USA
nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, USA
John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, USA
BlackListed News, https://www.blacklistednews.com/rss.php, en-US, USA
ZeroGov, https://zerogov.com/feed/, en-US, United States
Daily Stormer, https://dailystormer.in/feed/, en-US, United States
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, United States
nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, United States
John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, United States
BlackListed News, https://www.blacklistednews.com/rss.php, en-US, United States
Tampa Free Press, https://www.tampafp.com/feed/, en-US, United States
Deutsche Welle: DW.com POLITIK, http://rss.dw.com/atom/rss_de_politik, de-DE, Germany
Real Liberty Media, https://www.reallibertymedia.com/feed/, en-US, United States
Robert Reich, https://robertreich.substack.com/feed, en-US, United States

1 name, url, language, country
2 The Corbett Report, https://www.corbettreport.com/feed/, en-US, Japan
3 ZeroGov, https://zerogov.com/feed/, en-US, USA ZeroGov, https://zerogov.com/feed/, en-US, United States
4 Daily Stormer, https://dailystormer.in/feed/, en-US, USA Daily Stormer, https://dailystormer.in/feed/, en-US, United States
5 The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
6 The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, USA The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, United States
7 nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, USA nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, United States
8 John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, USA John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, United States
9 BlackListed News, https://www.blacklistednews.com/rss.php, en-US, USA BlackListed News, https://www.blacklistednews.com/rss.php, en-US, United States
10 Tampa Free Press, https://www.tampafp.com/feed/, en-US, United States
11 Deutsche Welle: DW.com POLITIK, http://rss.dw.com/atom/rss_de_politik, de-DE, Germany
12 Real Liberty Media, https://www.reallibertymedia.com/feed/, en-US, United States
13 Robert Reich, https://robertreich.substack.com/feed, en-US, United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Flipper Blog, https://blog.flipper.net/rss/, en-US, United States
1 name url language country
2 Flipper Blog https://blog.flipper.net/rss/ en-US United States

View file

@ -1,2 +1,11 @@
name, url, language, country
soeren-hentzschel.at - Aktuelles zu Mozilla, https://www.soeren-hentzschel.at/feed/, de-DE, Germany
WordPress.com News, https://wordpress.com/blog/feed/, en-US, United States
Micro.blog News, https://news.micro.blog/feed.xml, en-US, United States
EFF Action Center, https://act.eff.org/action.atom, en-US, United States
Melon's Thoughts - Guidebooks, https://thoughts.melonking.net/atom/?section=guides, en-US, United States
thecozy.cat, https://thecozy.cat/feed/, en-US, United States
Melon's Thoughts, https://thoughts.melonking.net/atom/, en-US, United States
An RSS Blog, https://www.rss-specifications.com/blog-feed.xml, en-US, United States
The Blog Starter, https://www.theblogstarter.com/feed/, en-US, United States
Mozilla Hacks, https://hacks.mozilla.org/feed/, en-US, United States

1 name url language country
2 soeren-hentzschel.at - Aktuelles zu Mozilla https://www.soeren-hentzschel.at/feed/ de-DE Germany
3 WordPress.com News https://wordpress.com/blog/feed/ en-US United States
4 Micro.blog News https://news.micro.blog/feed.xml en-US United States
5 EFF Action Center https://act.eff.org/action.atom en-US United States
6 Melon's Thoughts - Guidebooks https://thoughts.melonking.net/atom/?section=guides en-US United States
7 thecozy.cat https://thecozy.cat/feed/ en-US United States
8 Melon's Thoughts https://thoughts.melonking.net/atom/ en-US United States
9 An RSS Blog https://www.rss-specifications.com/blog-feed.xml en-US United States
10 The Blog Starter https://www.theblogstarter.com/feed/ en-US United States
11 Mozilla Hacks https://hacks.mozilla.org/feed/ en-US United States

View file

@ -7,4 +7,6 @@ ynet - News, https://www.ynet.co.il/Integration/StoryRss3082.xml, en-IL, Israel
העין השביעית, https://www.the7eye.org.il/feed, he-IL, Israel
ynet - מעורבות, https://www.ynet.co.il/Integration/StoryRss3262.xml, he-IL, Israel
Jerm Warfare, https://jermwarfare.com/feed, en-US, USA
Chiportal, https://chiportal.co.il/feed/, he-IL, Israel
כפר ביל"ו, https://bilu.org.il/feed/, he-IL, Israel
כנס מדיה, https://kenes-media.com/feed/, he-IL, Israel

Can't render this file because it contains an unexpected character in line 11 and column 14.

View file

@ -3,4 +3,10 @@ name, url, language, country
ynet - יהדות, https://www.ynet.co.il/Integration/StoryRss4403.xml, he-IL, Israel
ynet - Jewish, https://www.ynet.co.il/Integration/StoryRss3443.xml, en-IL, Israel
Jerm Warfare, https://jermwarfare.com/feed, en-US, USA
בית חבד מלבורן, https://chabadmel.com/feed/, he-IL, Australia
Chabad Weekly Magazine, https://www.chabad.org/tools/rss/magazine_rss.xml, en-US, Worldwide
Chabad Parsha, https://www.chabad.org/tools/rss/parsha_rss.xml, en-US, Worldwide
Chabad Daily Study, https://www.chabad.org/tools/rss/dailystudy_rss.xml, en-US, Worldwide
Chabad Omer Counter, https://www.chabad.org/tools/rss/omer_rss.xml, en-US, Worldwide
Chabad Lubavitch News, https://www.chabad.org/tools/rss/news_rss.xml, en-US, Worldwide
Chabad-Lubavitch in the Media, https://www.chabad.org/tools/rss/inthemedia_rss.xml, en-US, Worldwide

1 name url language country
3 ynet - יהדות https://www.ynet.co.il/Integration/StoryRss4403.xml he-IL Israel
4 ynet - Jewish https://www.ynet.co.il/Integration/StoryRss3443.xml en-IL Israel
5 Jerm Warfare https://jermwarfare.com/feed en-US USA
6 בית חבד מלבורן https://chabadmel.com/feed/ he-IL Australia
7 Chabad Weekly Magazine https://www.chabad.org/tools/rss/magazine_rss.xml en-US Worldwide
8 Chabad Parsha https://www.chabad.org/tools/rss/parsha_rss.xml en-US Worldwide
9 Chabad Daily Study https://www.chabad.org/tools/rss/dailystudy_rss.xml en-US Worldwide
10 Chabad Omer Counter https://www.chabad.org/tools/rss/omer_rss.xml en-US Worldwide
11 Chabad Lubavitch News https://www.chabad.org/tools/rss/news_rss.xml en-US Worldwide
12 Chabad-Lubavitch in the Media https://www.chabad.org/tools/rss/inthemedia_rss.xml en-US Worldwide

View file

@ -1,5 +1,6 @@
name, url, language, country
Jacob McCormick, https://mccor.xyz/rss.xml, en-US, USA
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA
Jacob McCormick, https://mccor.xyz/rss.xml, en-US, United States
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
XXIIVV, https://wiki.xxiivv.com/links/rss.xml, en-US, Canada
Divine Lifestyle, https://divinelifestyle.com/feed/, en-US, USA
Divine Lifestyle, https://divinelifestyle.com/feed/, en-US, United States
lectronice :: now, https://now.lectronice.com/feed.xml, en-US, United States

1 name url language country
2 Jacob McCormick https://mccor.xyz/rss.xml en-US USA United States
3 The Organic Prepper https://www.theorganicprepper.com/feed/ en-US USA United States
4 XXIIVV https://wiki.xxiivv.com/links/rss.xml en-US Canada
5 Divine Lifestyle https://divinelifestyle.com/feed/ en-US USA United States
6 lectronice :: now https://now.lectronice.com/feed.xml en-US United States

View file

@ -1,4 +0,0 @@
name, url, language, country
Linux Professional Institute (LPI), https://www.lpi.org/feed/, en-US, Canada
LinuxConfig, https://linuxconfig.org/feed, en-US, Worldwide
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, USA
1 name url language country
2 Linux Professional Institute (LPI) https://www.lpi.org/feed/ en-US Canada
3 LinuxConfig https://linuxconfig.org/feed en-US Worldwide
4 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US USA

View file

@ -0,0 +1,4 @@
name, url, language, country
Stories by Williams, https://storiesbywilliams.com/feed/, en-US, United States
Lili Saintcrow, https://www.lilithsaintcrow.com/feed/, en-US, United States
Shannon Kay, https://blog.shannonkay.me/feed.xml, en-US, United States
1 name url language country
2 Stories by Williams https://storiesbywilliams.com/feed/ en-US United States
3 Lili Saintcrow https://www.lilithsaintcrow.com/feed/ en-US United States
4 Shannon Kay https://blog.shannonkay.me/feed.xml en-US United States

2
datasets/news/local.csv Normal file
View file

@ -0,0 +1,2 @@
name, url, language, country
Tampa Free Press, https://www.tampafp.com/feed/, en-US, USA
1 name url language country
2 Tampa Free Press https://www.tampafp.com/feed/ en-US USA

3
datasets/news/misc.csv Normal file
View file

@ -0,0 +1,3 @@
name, url, language, country
Inhaltsangabe.info, https://www.inhaltsangabe.info/feed, de-DE, Germany
Kasparov, https://www.kasparov.com/feed/, en-US, United States
1 name url language country
2 Inhaltsangabe.info https://www.inhaltsangabe.info/feed de-DE Germany
3 Kasparov https://www.kasparov.com/feed/ en-US United States

View file

@ -1,2 +1,3 @@
name, url, language, country
ynet - ירוק, https://www.ynet.co.il/Integration/StoryRss4872.xml, he-IL, Israel
משתלת ולך, https://www.fruit.co.il/feed/, he-IL, Israel

1 name url language country
2 ynet - ירוק https://www.ynet.co.il/Integration/StoryRss4872.xml he-IL Israel
3 משתלת ולך https://www.fruit.co.il/feed/ he-IL Israel

34
datasets/news/people.csv Normal file
View file

@ -0,0 +1,34 @@
name, url, language, country
Michael W Lucas, https://mwl.io/feed, en-US, United States
Alixander Court, https://alixandercourt.com/feed/, en-US, United States
Anjan Momi, https://momi.ca/feed.xml, en-US, United States
Amethyst Reese, https://noswap.com/feed.xml, en-US, United States
Dan d'Auge, https://fedi.thechangebook.org/feed/dandauge, fr-FR, France
Dan d'Auge, https://mamot.fr/@dandauge.rss, fr-FR, France
PureTryOut, https://mastodon.fam-ribbers.com/@bart.rss, en-US, Netherlands
Tristan B. Velloza Kildaire, https://gleasonator.com/@deavmi, en-ZA, South Africa
Blog on Bart Ribbers - PureTryOut, https://fam-ribbers.com/blog/index.xml, en-US, Netherlands
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
Oliver Smith, https://fosstodon.org/@ollieparanoid, en-US, United States
Keywan Tonekaboni, https://social.heise.de/@ktn.rss, de-DE, Germany
keywan, https://chaos.social/@keywan.rss, de-DE, Germany
foreverliketh.is, https://foreverliketh.is/blog/index.xml, en-US, United States
unique hazards may exist, https://uniquehazards.com/feed.xml, en-US, United States
Aphrodite.dev, https://www.aphrodite.dev/~blog/feed.xml, en-US, United States
a walkaway story, http://xj-ix.luxe/feed.atom, en-US, United States
Detritus, https://detritus.zone/feed.xml, en-US, United States
He Can Jog, https://hecanjog.com/all.rss, en-US, United States
XXIIVV, https://wiki.xxiivv.com/links/rss.xml, en-US, United States
electro·pizza, https://electro.pizza/feed.xml, en-US, United States
Heracles Papatheodorou • heracl.es, https://heracl.es/feed.xml, en-US, United States
Aphrodite.dev, https://www.aphrodite.dev/~blog/feed.xml, en-US, United States
thecozy.cat, https://thecozy.cat/feed/, en-US, United States
Shannon Kay, https://blog.shannonkay.me/feed.xml, en-US, United States
Justine Smithies blog, https://justine.smithies.me.uk/atom.xml, en-US, United States
Justine Smithies, https://fosstodon.org/@JustineSmithies.rss, en-US, United States
Victor Stinner 🐍, https://mamot.fr/@vstinner.rss, en-US, Worldwide
lectronice :: now, https://now.lectronice.com/feed.xml, en-US, United States
Interconnected (Matt Webb), https://interconnected.org/home/feed, en-US, United States
metasyn.pw, https://metasyn.pw/rss.xml, en-US, United States
Mika Naylor, https://hordburh.autophagy.io/@mika.rss, en-US, United States
rezmason, https://merveilles.town/@rezmason.rss, en-US, United States
1 name url language country
2 Michael W Lucas https://mwl.io/feed en-US United States
3 Alixander Court https://alixandercourt.com/feed/ en-US United States
4 Anjan Momi https://momi.ca/feed.xml en-US United States
5 Amethyst Reese https://noswap.com/feed.xml en-US United States
6 Dan d'Auge https://fedi.thechangebook.org/feed/dandauge fr-FR France
7 Dan d'Auge https://mamot.fr/@dandauge.rss fr-FR France
8 PureTryOut https://mastodon.fam-ribbers.com/@bart.rss en-US Netherlands
9 Tristan B. Velloza Kildaire https://gleasonator.com/@deavmi en-ZA South Africa
10 Blog on Bart Ribbers - PureTryOut https://fam-ribbers.com/blog/index.xml en-US Netherlands
11 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
12 Oliver Smith https://fosstodon.org/@ollieparanoid en-US United States
13 Keywan Tonekaboni https://social.heise.de/@ktn.rss de-DE Germany
14 keywan https://chaos.social/@keywan.rss de-DE Germany
15 foreverliketh.is https://foreverliketh.is/blog/index.xml en-US United States
16 unique hazards may exist https://uniquehazards.com/feed.xml en-US United States
17 Aphrodite.dev https://www.aphrodite.dev/~blog/feed.xml en-US United States
18 a walkaway story http://xj-ix.luxe/feed.atom en-US United States
19 Detritus https://detritus.zone/feed.xml en-US United States
20 He Can Jog https://hecanjog.com/all.rss en-US United States
21 XXIIVV https://wiki.xxiivv.com/links/rss.xml en-US United States
22 electro·pizza https://electro.pizza/feed.xml en-US United States
23 Heracles Papatheodorou • heracl.es https://heracl.es/feed.xml en-US United States
24 Aphrodite.dev https://www.aphrodite.dev/~blog/feed.xml en-US United States
25 thecozy.cat https://thecozy.cat/feed/ en-US United States
26 Shannon Kay https://blog.shannonkay.me/feed.xml en-US United States
27 Justine Smithies blog https://justine.smithies.me.uk/atom.xml en-US United States
28 Justine Smithies https://fosstodon.org/@JustineSmithies.rss en-US United States
29 Victor Stinner 🐍 https://mamot.fr/@vstinner.rss en-US Worldwide
30 lectronice :: now https://now.lectronice.com/feed.xml en-US United States
31 Interconnected (Matt Webb) https://interconnected.org/home/feed en-US United States
32 metasyn.pw https://metasyn.pw/rss.xml en-US United States
33 Mika Naylor https://hordburh.autophagy.io/@mika.rss en-US United States
34 rezmason https://merveilles.town/@rezmason.rss en-US United States

View file

@ -1,2 +1,9 @@
name, url, language, country
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, USA
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
EFF Action Center, https://act.eff.org/action.atom, en-US, United States
Spread Privacy, https://spreadprivacy.com/rss/, en-US, United States

1 name url language country
2 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US USA United States
3 Necuno Solutions https://necunos.com/feed.xml en-US Finland
4 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
5 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
6 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
7 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany
8 EFF Action Center https://act.eff.org/action.atom en-US United States
9 Spread Privacy https://spreadprivacy.com/rss/ en-US United States

2
datasets/news/russia.csv Normal file
View file

@ -0,0 +1,2 @@
name, url, language, country
Kasparov, https://www.kasparov.com/feed/, en-US, United States
1 name url language country
2 Kasparov https://www.kasparov.com/feed/ en-US United States

View file

@ -1 +1,3 @@
name, url, language, country
Deutsche Welle: DW.com WIRTSCHAFT, http://rss.dw.com/atom/rss-de-eco, de-DE, Germany
Hackaday, https://hackaday.com/feed/, en-US, United States

1 name url language country
2 Deutsche Welle: DW.com WIRTSCHAFT http://rss.dw.com/atom/rss-de-eco de-DE Germany
3 Hackaday https://hackaday.com/feed/ en-US United States

View file

@ -1,2 +1,3 @@
name, url, language, country
ynet - ספורט, https://www.ynet.co.il/Integration/StoryRss3.xml, he-IL, Israel
Deutsche Welle: DW.com SPORT, http://rss.dw.com/atom/rss-de-sport, de-DE, Germany

1 name url language country
2 ynet - ספורט https://www.ynet.co.il/Integration/StoryRss3.xml he-IL Israel
3 Deutsche Welle: DW.com SPORT http://rss.dw.com/atom/rss-de-sport de-DE Germany

View file

@ -0,0 +1,2 @@
name, url, language, country
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
1 name url language country
2 Necuno Solutions https://necunos.com/feed.xml en-US Finland

View file

@ -1,4 +1,4 @@
name, url, language, country
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA
nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, USA
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
nobulart - Exploring the Great Reset, https://nobulart.com/feed/, en-US, United States

1 name url language country
2 The Organic Prepper https://www.theorganicprepper.com/feed/ en-US USA United States
3 nobulart - Exploring the Great Reset https://nobulart.com/feed/ en-US USA United States
4

View file

@ -1,6 +1,24 @@
name, url, language, country
Developpez, https://www.developpez.com/index/atom, fr-FR, France
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, USA
CryptoSlate, https://cryptoslate.com/feed/, en-US, USA
Daily Stormer, https://dailystormer.in/feed/, en-US, USA
Futurism, https://futurism.com/feed, en-US, USA
The Logs, https://www.flu0r1ne.net/logs/rss.xml, en-US, United States
CryptoSlate, https://cryptoslate.com/feed/, en-US, United States
Daily Stormer, https://dailystormer.in/feed/, en-US, United States
Futurism, https://futurism.com/feed, en-US, United States
Automation Rhapsody, https://automationrhapsody.com/feed/, en-US, United States
Deep Thoughts by Raymond Hettinger, https://rhettinger.wordpress.com/feed/, en-US, United States
Chiportal, https://chiportal.co.il/feed/, he-IL, Israel
Hackaday, https://hackaday.com/feed/, en-US, United States
Hacker News, https://news.ycombinator.com/rss, en-US, United States
Hacker News: Front Page, https://hnrss.org/frontpage, en-US, United States
Amethyst Reese, https://noswap.com/feed.xml, en-US, United States
Necuno Solutions, https://necunos.com/feed.xml, en-US, Finland
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
heise online News, https://www.heise.de/rss/heise-atom.xml, de-DE, Germany
c't Magazin, https://social.heise.de/@ct_Magazin.rss, de-DE, Germany
AlternativeTo News, https://feed.alternativeto.net/news/all/, en-US, United States
Ηρακλής Παπαθεοδώρου • heracl.es, https://heracl.es/el/feed.xml, el-GR, Greece
Heracles Papatheodorou • heracl.es, https://heracl.es/feed.xml, en-US, Greece
lectronice :: now, https://now.lectronice.com/feed.xml, en-US, United States

1 name url language country
2 Developpez https://www.developpez.com/index/atom fr-FR France
3 The Logs https://www.flu0r1ne.net/logs/rss.xml en-US USA United States
4 CryptoSlate https://cryptoslate.com/feed/ en-US USA United States
5 Daily Stormer https://dailystormer.in/feed/ en-US USA United States
6 Futurism https://futurism.com/feed en-US USA United States
7 Automation Rhapsody https://automationrhapsody.com/feed/ en-US United States
8 Deep Thoughts by Raymond Hettinger https://rhettinger.wordpress.com/feed/ en-US United States
9 Chiportal https://chiportal.co.il/feed/ he-IL Israel
10 Hackaday https://hackaday.com/feed/ en-US United States
11 Hacker News https://news.ycombinator.com/rss en-US United States
12 Hacker News: Front Page https://hnrss.org/frontpage en-US United States
13 Amethyst Reese https://noswap.com/feed.xml en-US United States
14 Necuno Solutions https://necunos.com/feed.xml en-US Finland
15 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States
16 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
17 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
18 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany
19 heise online News https://www.heise.de/rss/heise-atom.xml de-DE Germany
20 c't Magazin https://social.heise.de/@ct_Magazin.rss de-DE Germany
21 AlternativeTo News https://feed.alternativeto.net/news/all/ en-US United States
22 Ηρακλής Παπαθεοδώρου • heracl.es https://heracl.es/el/feed.xml el-GR Greece
23 Heracles Papatheodorou • heracl.es https://heracl.es/feed.xml en-US Greece
24 lectronice :: now https://now.lectronice.com/feed.xml en-US United States

View file

@ -1,2 +1,3 @@
name, url, language, country
The XMPP Blog on XMPP, https://xmpp.org/feeds/all.atom.xml, en-US, Worldwide
ollieparanoid, https://ollieparanoid.github.io/feed.xml, en-US, United States

1 name url language country
2 The XMPP Blog on XMPP https://xmpp.org/feeds/all.atom.xml en-US Worldwide
3 ollieparanoid https://ollieparanoid.github.io/feed.xml en-US United States

View file

@ -1,2 +1,4 @@
name, url, language, country
Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN, http://rss.dw.com/atom/rss-de-deutschlandentdecken, de-DE, Germany
ynet - תיירות, https://www.ynet.co.il/Integration/StoryRss598.xml, he-IL, Israel
Trip101, https://trip101.com/feed, en-US, United States

1 name url language country
2 Deutsche Welle: DW.com DEUTSCHLAND ENTDECKEN http://rss.dw.com/atom/rss-de-deutschlandentdecken de-DE Germany
3 ynet - תיירות https://www.ynet.co.il/Integration/StoryRss598.xml he-IL Israel
4 Trip101 https://trip101.com/feed en-US United States

View file

@ -1,6 +1,9 @@
name, url, language, country
ZeroGov, https://zerogov.com/feed/, en-US, USA
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA
The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, USA
John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, USA
BlackListed News, https://www.blacklistednews.com/rss.php, en-US, USA
ZeroGov, https://zerogov.com/feed/, en-US, United States
The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, United States
John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, United States
BlackListed News, https://www.blacklistednews.com/rss.php, en-US, United States
Tampa Free Press, https://www.tampafp.com/feed/, en-US, United States
Real Liberty Media, https://www.reallibertymedia.com/feed/, en-US, United States
Robert Reich, https://robertreich.substack.com/feed, en-US, United States

1 name, url, language, country
2 ZeroGov, https://zerogov.com/feed/, en-US, USA ZeroGov, https://zerogov.com/feed/, en-US, United States
3 The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, USA The Organic Prepper, https://www.theorganicprepper.com/feed/, en-US, United States
4 The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, USA The Hill News, https://thehill.com/feed/?feed=partnerfeed-news-feed&format=rss, en-US, United States
5 John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, USA John W. Whitehead, Constitutional Attorney, https://agovernmentofwolves.com/feed/, en-US, United States
6 BlackListed News, https://www.blacklistednews.com/rss.php, en-US, USA BlackListed News, https://www.blacklistednews.com/rss.php, en-US, United States
7 Tampa Free Press, https://www.tampafp.com/feed/, en-US, United States
8 Real Liberty Media, https://www.reallibertymedia.com/feed/, en-US, United States
9 Robert Reich, https://robertreich.substack.com/feed, en-US, United States

View file

@ -1,2 +1,3 @@
name, url, language, country
ynet - רכב, https://www.ynet.co.il/Integration/StoryRss550.xml, he-IL, Israel
Hackaday, https://hackaday.com/feed/, en-US, United States

1 name url language country
2 ynet - רכב https://www.ynet.co.il/Integration/StoryRss550.xml he-IL Israel
3 Hackaday https://hackaday.com/feed/ en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Framasoft - Toute l'actualité, https://rss.framasoft.org/, fr-FR, France
1 name url language country
2 Framasoft - Toute l'actualité https://rss.framasoft.org/ fr-FR France

View file

@ -0,0 +1,4 @@
name, url, language, country
FSFE News, https://fsfe.org/news/news.en.rss, en-US, Germany
FSFE News (DE), https://fsfe.org/news/news.de.rss, de-DE, Germany
FSFE News (FR), https://fsfe.org/news/news.fr.rss, fr-FR, Germany
1 name url language country
2 FSFE News https://fsfe.org/news/news.en.rss en-US Germany
3 FSFE News (DE) https://fsfe.org/news/news.de.rss de-DE Germany
4 FSFE News (FR) https://fsfe.org/news/news.fr.rss fr-FR Germany

View file

@ -1,2 +1,3 @@
name, url, language, country
National Alliance, https://www.natall.com/feed/, en-US, USA
EFF Action Center, https://act.eff.org/action.atom, en-US, United States

1 name url language country
2 National Alliance https://www.natall.com/feed/ en-US USA
3 EFF Action Center https://act.eff.org/action.atom en-US United States

View file

@ -1,2 +1,2 @@
name, url, language, country
Talk Python To Me, https://talkpython.fm/episodes/rss, en-US, USA
Talk Python To Me, https://talkpython.fm/episodes/rss, en-US, United States

1 name url language country
2 Talk Python To Me https://talkpython.fm/episodes/rss en-US USA United States

View file

@ -0,0 +1,6 @@
name, url, language, country
Hacker Public Radio, http://hackerpublicradio.org/hpr_spx_rss.php, en-US, United States
postmarketOS, https://cast.postmarketos.org/feed.rss, en-US, Germany
0d - Zeroday, https://zeroday-podcast.de/feed/mp3/, de-DE, Germany
Software Freedom Podcast (OPUS), http://fsfe.org/news/podcast-opus.en.rss, en-US, Germany
Software Freedom Podcast (MP3), http://fsfe.org/news/podcast.en.rss, en-US, Germany
1 name url language country
2 Hacker Public Radio http://hackerpublicradio.org/hpr_spx_rss.php en-US United States
3 postmarketOS https://cast.postmarketos.org/feed.rss en-US Germany
4 0d - Zeroday https://zeroday-podcast.de/feed/mp3/ de-DE Germany
5 Software Freedom Podcast (OPUS) http://fsfe.org/news/podcast-opus.en.rss en-US Germany
6 Software Freedom Podcast (MP3) http://fsfe.org/news/podcast.en.rss en-US Germany

View file

@ -2,3 +2,5 @@ name, url, language, country
American Dissident Voices, https://nationalvanguard.org/category/american-dissident-voices/feed/, en-US, USA
Radio 3Fourteen, https://redice.tv/rss/radio-3fourteen, en-US, USA
The National Archives - Podcast Series, https://www.nationalarchives.gov.uk/rss/podcasts.xml, en-UK, United Kingdom
Oracle Broadcasting Recent Shows, http://www.oraclebroadcasting.com/rss_recent.php, en-US, USA
Speak Free Radio, https://speakfreeradio.com/feed/, en-US, USA

1 name url language country
2 American Dissident Voices https://nationalvanguard.org/category/american-dissident-voices/feed/ en-US USA
3 Radio 3Fourteen https://redice.tv/rss/radio-3fourteen en-US USA
4 The National Archives - Podcast Series https://www.nationalarchives.gov.uk/rss/podcasts.xml en-UK United Kingdom
5 Oracle Broadcasting Recent Shows http://www.oraclebroadcasting.com/rss_recent.php en-US USA
6 Speak Free Radio https://speakfreeradio.com/feed/ en-US USA

View file

@ -1,4 +1,11 @@
name, url, language, country
American Dissident Voices, https://nationalvanguard.org/category/american-dissident-voices/feed/, en-US, USA
American Dissident Voices, https://nationalvanguard.org/category/american-dissident-voices/feed/, en-US, United States
The Corbett Report, https://www.corbettreport.com/feed/, en-US, Japan
Radio 3Fourteen, https://redice.tv/rss/radio-3fourteen, en-US, USA
Radio 3Fourteen, https://redice.tv/rss/radio-3fourteen, en-US, United States
Oracle Broadcasting Recent Shows, http://www.oraclebroadcasting.com/rss_recent.php, en-US, United States
Speak Free Radio, https://speakfreeradio.com/feed/, en-US, United States
Podcasts | Real Liberty Media, https://www.reallibertymedia.com/category/podcasts/feed/?redirect=no, en-US, United States
Behind The Woodshed with Hal Anthony, https://www.reallibertymedia.com/feed/behind-the-woodshed/, en-US, United States

1 name url language country
2 American Dissident Voices https://nationalvanguard.org/category/american-dissident-voices/feed/ en-US USA United States
3 The Corbett Report https://www.corbettreport.com/feed/ en-US Japan
4 Radio 3Fourteen https://redice.tv/rss/radio-3fourteen en-US USA United States
5 Oracle Broadcasting Recent Shows http://www.oraclebroadcasting.com/rss_recent.php en-US United States
6 Speak Free Radio https://speakfreeradio.com/feed/ en-US United States
7 Podcasts | Real Liberty Media https://www.reallibertymedia.com/category/podcasts/feed/?redirect=no en-US United States
8 Behind The Woodshed with Hal Anthony https://www.reallibertymedia.com/feed/behind-the-woodshed/ en-US United States
9
10
11

View file

@ -0,0 +1,2 @@
name, url, language, country
Chabad - Daily Torah Study, https://www.chabad.org/tools/rss/dailystudy_podcast.xml, en-US, Worldwide
1 name url language country
2 Chabad - Daily Torah Study https://www.chabad.org/tools/rss/dailystudy_podcast.xml en-US Worldwide

View file

@ -1,3 +1,5 @@
name, url, language, country
The Corbett Report, https://www.corbettreport.com/feed/, en-US, Japan
postmarketOS, https://cast.postmarketos.org/feed.rss, en-US, Germany
Software Freedom Podcast, http://fsfe.org/news/podcast-opus.en.rss, en-US, Germany
Software Freedom Podcast, http://fsfe.org/news/podcast-opus.en.rss, en-US, Germany

1 name url language country
2 The Corbett Report https://www.corbettreport.com/feed/ en-US Japan
3 postmarketOS https://cast.postmarketos.org/feed.rss en-US Germany
4 Software Freedom Podcast http://fsfe.org/news/podcast-opus.en.rss en-US Germany
5 Software Freedom Podcast http://fsfe.org/news/podcast-opus.en.rss en-US Germany

View file

@ -0,0 +1,5 @@
name, url, language, country
American Dissident Voices, https://nationalvanguard.org/category/american-dissident-voices/feed/, en-US, United States
Radio 3Fourteen, https://redice.tv/rss/radio-3fourteen, en-US, United States
Oracle Broadcasting Recent Shows, http://www.oraclebroadcasting.com/rss_recent.php, en-US, United States
Speak Free Radio, https://speakfreeradio.com/feed/, en-US, United States
1 name url language country
2 American Dissident Voices https://nationalvanguard.org/category/american-dissident-voices/feed/ en-US United States
3 Radio 3Fourteen https://redice.tv/rss/radio-3fourteen en-US United States
4 Oracle Broadcasting Recent Shows http://www.oraclebroadcasting.com/rss_recent.php en-US United States
5 Speak Free Radio https://speakfreeradio.com/feed/ en-US United States

View file

@ -0,0 +1,3 @@
name, url, language, country
Home Assistant, https://www.home-assistant.io/atom.xml, en-US, USA
Zapier, https://zapier.com/blog/feeds/latest/, en-US, USA
1 name url language country
2 Home Assistant https://www.home-assistant.io/atom.xml en-US USA
3 Zapier https://zapier.com/blog/feeds/latest/ en-US USA

View file

@ -0,0 +1,2 @@
name, url, language, country
rclone - rsync for cloud storage, https://rclone.org/index.xml, en-US, United States
1 name url language country
2 rclone - rsync for cloud storage https://rclone.org/index.xml en-US United States

View file

@ -0,0 +1,3 @@
name, url, language, country
camen design, https://camendesign.com/rss, en-US, United States
nodebb, https://nodebb.org/feed/, en-US, United States
1 name url language country
2 camen design https://camendesign.com/rss en-US United States
3 nodebb https://nodebb.org/feed/ en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Pirate Solitaire Devlog - itch.io, https://victor-pernet.itch.io/pirate-solitaire/devlog.rss, en-US, Worldwide
1 name url language country
2 Pirate Solitaire Devlog - itch.io https://victor-pernet.itch.io/pirate-solitaire/devlog.rss en-US Worldwide

View file

@ -0,0 +1,5 @@
name, url, language, country
blender.org, https://www.blender.org/feed/, en-US, Worldwide
News blender.org, https://www.blender.org/category/news/feed/, en-US, Worldwide
Blender 🔶, https://mastodon.social/@Blender.rss, en-US, Worldwide
Blender Developer Blog, https://code.blender.org/feed/, en-US, Worldwide
1 name url language country
2 blender.org https://www.blender.org/feed/ en-US Worldwide
3 News – blender.org https://www.blender.org/category/news/feed/ en-US Worldwide
4 Blender 🔶 https://mastodon.social/@Blender.rss en-US Worldwide
5 Blender Developer Blog https://code.blender.org/feed/ en-US Worldwide

View file

@ -1,3 +1,8 @@
name, url, language, country
DownThemAll!, https://www.downthemall.org/feed, en-US, Worldwide
Falkon - KDE web browser, https://www.falkon.org/atom.xml, en-US, Czech
What's Up, Fraidycat?, https://fraidyc.at/blog/feed.xml, en-US, Worldwide
geomyidae, branch HEAD, gopher://bitreich.org:70/0/scm/geomyidae/atom.xml, en-US, United States
rclone - rsync for cloud storage, https://rclone.org/index.xml, en-US, United States
Feedbin, https://feedbin.com/blog/atom.xml, en-US, United States
Silvio Rizzi (reederapp.com), https://gloria.social/@rizzi.rss, en-US, United States

1 name name, url, language, country url language country
2 DownThemAll! DownThemAll!, https://www.downthemall.org/feed, en-US, Worldwide https://www.downthemall.org/feed en-US Worldwide
3 Falkon - KDE web browser Falkon - KDE web browser, https://www.falkon.org/atom.xml, en-US, Czech https://www.falkon.org/atom.xml en-US Czech
4 What's Up, Fraidycat?, https://fraidyc.at/blog/feed.xml, en-US, Worldwide
5 geomyidae, branch HEAD, gopher://bitreich.org:70/0/scm/geomyidae/atom.xml, en-US, United States
6 rclone - rsync for cloud storage, https://rclone.org/index.xml, en-US, United States
7 Feedbin, https://feedbin.com/blog/atom.xml, en-US, United States
8 Silvio Rizzi (reederapp.com), https://gloria.social/@rizzi.rss, en-US, United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Justine Smithies, https://fosstodon.org/@JustineSmithies.rss, en-US, United States
1 name url language country
2 Justine Smithies https://fosstodon.org/@JustineSmithies.rss en-US United States

View file

@ -0,0 +1,5 @@
name, url, language, country
NixOS, https://nixos.org/blog/announcements-rss.xml, en-US, USA
ReactOS, https://reactos.org/index.xml, en-US, Germany
Salix OS, https://forum.salixos.org/app.php/feed/news, en-US, Greece
postmarketOS, https://postmarketos.org/blog/feed.atom, en-US, Germany
1 name url language country
2 NixOS https://nixos.org/blog/announcements-rss.xml en-US USA
3 ReactOS https://reactos.org/index.xml en-US Germany
4 Salix OS https://forum.salixos.org/app.php/feed/news en-US Greece
5 postmarketOS https://postmarketos.org/blog/feed.atom en-US Germany

View file

@ -0,0 +1,16 @@
name, url, language, country
Jekyll, https://jekyllrb.com/feed.xml, en-US, Worldwide
Hugo, https://gohugo.io/index.xml, en-US, Worldwide
Joomla!, https://www.joomla.org/announcements.feed?type=rss, en-US, Worldwide
Haunt, https://dthompson.us/feed.xml, en-US, Worldwide
Grav Development Blog, https://getgrav.org/blog.atom, en-US, Worldwide
Nikola, https://getnikola.com/rss.xml, en-US, Worldwide
Octopress, http://octopress.org/atom.xml, en-US, Worldwide
Pelican, https://getpelican.com/feeds/all.atom.xml, en-US, Worldwide
Podcast Generator, https://podcastgenerator.net/feed/, en-US, Worldwide
Publii, https://getpublii.com/feed.xml, en-US, Worldwide
Textpattern CMS, https://textpattern.com/rss, en-US, Worldwide
TYPO3, https://typo3.org/rss, en-US, Worldwide
WordPress, https://wordpress.org/news/feed/, en-US, Worldwide
Foswiki, https://foswiki.org/Home/WebRss, en-US, Worldwide
Eleventy, https://www.11ty.dev/blog/feed.xml, en-US, Worldwide
1 name url language country
2 Jekyll https://jekyllrb.com/feed.xml en-US Worldwide
3 Hugo https://gohugo.io/index.xml en-US Worldwide
4 Joomla! https://www.joomla.org/announcements.feed?type=rss en-US Worldwide
5 Haunt https://dthompson.us/feed.xml en-US Worldwide
6 Grav Development Blog https://getgrav.org/blog.atom en-US Worldwide
7 Nikola https://getnikola.com/rss.xml en-US Worldwide
8 Octopress http://octopress.org/atom.xml en-US Worldwide
9 Pelican https://getpelican.com/feeds/all.atom.xml en-US Worldwide
10 Podcast Generator https://podcastgenerator.net/feed/ en-US Worldwide
11 Publii https://getpublii.com/feed.xml en-US Worldwide
12 Textpattern CMS https://textpattern.com/rss en-US Worldwide
13 TYPO3 https://typo3.org/rss en-US Worldwide
14 WordPress https://wordpress.org/news/feed/ en-US Worldwide
15 Foswiki https://foswiki.org/Home/WebRss en-US Worldwide
16 Eleventy https://www.11ty.dev/blog/feed.xml en-US Worldwide

View file

@ -0,0 +1,2 @@
name, url, language, country
Karl Bartel's Website, https://www.karl.berlin/atom.xml, en-US, Germany
1 name url language country
2 Karl Bartel's Website https://www.karl.berlin/atom.xml en-US Germany

View file

@ -8,3 +8,6 @@ Python Morsels, https://www.pythonmorsels.com/topics/feed/, en-US, Worldwide
Python GUIs, https://www.pythonguis.com/feeds/atom.xml, en-US, Worldwide
Python Examples, https://pythonexamples.org/feed/, en-US, Worldwide
AppDividend, https://appdividend.com/feed/, en-US, Worldwide
Deep Thoughts by Raymond Hettinger, https://rhettinger.wordpress.com/feed/, en-US, USA
Victor Stinner blog 3, https://vstinner.github.io/feeds/all.atom.xml, en-US, Worldwide
Victor Stinner 🐍, https://mamot.fr/@vstinner.rss, en-US, Worldwide

1 name url language country
8 Python GUIs https://www.pythonguis.com/feeds/atom.xml en-US Worldwide
9 Python Examples https://pythonexamples.org/feed/ en-US Worldwide
10 AppDividend https://appdividend.com/feed/ en-US Worldwide
11 Deep Thoughts by Raymond Hettinger https://rhettinger.wordpress.com/feed/ en-US USA
12 Victor Stinner blog 3 https://vstinner.github.io/feeds/all.atom.xml en-US Worldwide
13 Victor Stinner 🐍 https://mamot.fr/@vstinner.rss en-US Worldwide

View file

@ -0,0 +1,5 @@
name, url, language, country
denshi.live, https://denshi.live/feeds/videos.xml, en-US, United States
Luke's Videos, https://videos.lukesmith.xyz/feeds/videos.xml, en-US, United States
fair.tube, https://fair.tube/feeds/videos.xml, de-DE, Germany
Kockatoo Tube, https://tube.kockatoo.org/feeds/videos.xml, en-US, United States
1 name url language country
2 denshi.live https://denshi.live/feeds/videos.xml en-US United States
3 Luke's Videos https://videos.lukesmith.xyz/feeds/videos.xml en-US United States
4 fair.tube https://fair.tube/feeds/videos.xml de-DE Germany
5 Kockatoo Tube https://tube.kockatoo.org/feeds/videos.xml en-US United States

View file

@ -0,0 +1,2 @@
name, url, language, country
Blender Video, https://video.blender.org/feeds/videos.xml, en-US, United States
1 name url language country
2 Blender Video https://video.blender.org/feeds/videos.xml en-US United States

View file

@ -2,3 +2,7 @@ name, url, language, country
denshi.live, https://denshi.live/feeds/videos.xml, en-US, USA
Luke's Videos, https://videos.lukesmith.xyz/feeds/videos.xml, en-US, USA
Films By Kris, https://filmsbykris.com/rss.xml, en-US, USA
Blender Video, https://video.blender.org/feeds/videos.xml, en-US, United States
Framatube, https://framatube.org/feeds/videos.xml, fr-FR, France
Framasoft, https://framatube.org/feeds/videos.xml?accountId=3&sort=-publishedAt, fr-FR, France
FSFE, https://media.fsfe.org/feeds/videos.xml?accountId=4, de-DE, Germany

1 name url language country
2 denshi.live https://denshi.live/feeds/videos.xml en-US USA
3 Luke's Videos https://videos.lukesmith.xyz/feeds/videos.xml en-US USA
4 Films By Kris https://filmsbykris.com/rss.xml en-US USA
5 Blender Video https://video.blender.org/feeds/videos.xml en-US United States
6 Framatube https://framatube.org/feeds/videos.xml fr-FR France
7 Framasoft https://framatube.org/feeds/videos.xml?accountId=3&sort=-publishedAt fr-FR France
8 FSFE https://media.fsfe.org/feeds/videos.xml?accountId=4 de-DE Germany

View file

@ -13,28 +13,28 @@ FIXME
TODO
1) SQL prepared statements
1) SQL prepared statements.
2) Machine Learning for scrapping Title, Link, Summary and Timstamp
2) Machine Learning for scrapping Title, Link, Summary and Timstamp.
3) Support MUC
3) Support MUC.
4) Support categories
4) Support categories.
5) Default prepackaged list of feeds
5) Default prepackaged list of feeds.
6) XMPP commands
6) XMPP commands.
7) Bot as transport
7) Bot as transport.
8) OMEMO
8) OMEMO.
9) Logging
9) Logging.
10) Default feeds (e.g. Blacklisted News, TBOT etc.)
11) Download and upload/send article (xHTML, xHTMLZ, Markdown, MHTML, TXT)
Use Readability
11) Download and upload/send article (xHTML, xHTMLZ, Markdown, MHTML, TXT).
Use Readability.
12) Fetch summary from URL, instead of storing summary.
@ -42,6 +42,14 @@ TODO
https://github.com/michael-lazar/pygopherd
https://github.com/gopherball/gb
13) Support ActivityPub @person@domain (see Tip Of The Day).
12) Tip Of The Day.
Did you know that you can follow you favorite Mastodon feeds by just
sending the URL address?
Supported fediverse websites are:
Akkoma, HubZilla, Mastodon, Misskey, Pixelfed, Pleroma, Soapbox.
"""
# vars and their meanings:

View file

@ -1,6 +1,15 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
FIXME
1) feed_mode_scan doesn't find feed for https://www.blender.org/
even though it should be according to the pathnames dictionary.
"""
import aiohttp
import asyncio
import feedparser
@ -55,12 +64,12 @@ async def download_updates(db_file, url=None):
try:
feed = feedparser.parse(res[0])
if feed.bozo:
bozo = (
"WARNING: Bozo detected for feed: {}\n"
"For more information, visit "
"https://pythonhosted.org/feedparser/bozo.html"
).format(source)
print(bozo)
# bozo = (
# "WARNING: Bozo detected for feed: {}\n"
# "For more information, visit "
# "https://pythonhosted.org/feedparser/bozo.html"
# ).format(source)
# print(bozo)
valid = 0
else:
valid = 1
@ -96,8 +105,6 @@ async def download_updates(db_file, url=None):
)
# new_entry = 0
for entry in entries:
if entry.has_key("id"):
eid = entry.id
if entry.has_key("title"):
title = entry.title
else:
@ -108,6 +115,10 @@ async def download_updates(db_file, url=None):
link = await trim_url(link)
else:
link = source
if entry.has_key("id"):
eid = entry.id
else:
eid = link
# TODO Pass date too for comparion check
if entry.has_key("published"):
date = entry.published
@ -138,7 +149,7 @@ async def download_updates(db_file, url=None):
# date = date.isoformat() # Convert to ISO 8601
else:
# TODO Just set date = "*** No date ***"
# date = datetime.now().isoformat()
# date = await datetime.now().isoformat()
date = await datetimehandler.now()
# NOTE Would seconds result in better database performance
# date = datetime.datetime(date)
@ -606,7 +617,10 @@ async def feed_mode_request(db_file, url, tree):
"RSS URL discovery has found {} feeds:\n```\n"
).format(len(feeds))
for feed in feeds:
feed_name = feeds[feed]["feed"]["title"]
try:
feed_name = feeds[feed]["feed"]["title"]
except:
feed_name = urlsplit(feed).netloc
feed_addr = feed
feed_amnt = len(feeds[feed].entries)
if feed_amnt:
@ -707,7 +721,10 @@ async def feed_mode_scan(db_file, url, tree):
# res = await download_feed(feed)
# except:
# continue
feed_name = feeds[feed]["feed"]["title"]
try:
feed_name = feeds[feed]["feed"]["title"]
except:
feed_name = urlsplit(feed).netloc
feed_addr = feed
feed_amnt = len(feeds[feed].entries)
if feed_amnt:
@ -797,4 +814,54 @@ async def feed_mode_auto_discovery(db_file, url, tree):
# mentioned, yet upon failure it wouldn't?
# return await add_feed(db_file, feed_addr)
msg = await add_feed(db_file, feed_addr)
return msg
return msg
async def feed_to_http(url):
"""
Replace scheme feed by http.
Parameters
----------
url : str
URL.
Returns
-------
new_url : str
URL.
"""
par_url = urlsplit(url)
new_url = urlunsplit([
"http",
par_url.netloc,
par_url.path,
par_url.query,
par_url.fragment
])
return new_url
async def activitypub_to_http(namespace):
"""
Replace ActivityPub namespace by http.
Parameters
----------
namespace : str
Namespace.
Returns
-------
new_url : str
URL.
"""
par_url = urlsplit(namespace)
new_url = urlunsplit([
"http",
par_url.netloc,
par_url.path,
par_url.query,
par_url.fragment
])
return new_url

View file

@ -947,13 +947,13 @@ async def remove_nonexistent_entries(db_file, feed, source):
# have been changed (though that can only happen when
# manually editing)
ix = item[0]
print(">>> SOURCE: ", source)
print(">>> INVALID:", item[1])
# print(">>> SOURCE: ", source)
# print(">>> INVALID:", item[1])
# print("title:", item[1])
# print("link :", item[2])
# print("id :", item[3])
if item[5] == 1:
print(">>> DELETING:", item[1])
# print(">>> DELETING:", item[1])
sql = (
"DELETE "
"FROM entries "
@ -961,7 +961,7 @@ async def remove_nonexistent_entries(db_file, feed, source):
)
cur.execute(sql, (ix,))
else:
print(">>> ARCHIVING:", item[1])
# print(">>> ARCHIVING:", item[1])
sql = (
"INSERT "
"INTO archive "
@ -1221,7 +1221,12 @@ async def search_entries(db_file, query):
else:
return "No results found for: {}".format(query)
"""
FIXME Error due to missing date, but it appears that date is present:
this is source: https://blog.heckel.io/feed/
this is date: 2008-05-13T13:51:50+00:00
no result. this is source: https://blog.heckel.io/feed/
"""
async def check_entry_exist(db_file, source, eid=None,
title=None, link=None, date=None):
"""
@ -1277,8 +1282,8 @@ async def check_entry_exist(db_file, source, eid=None,
"timestamp": date
}).fetchone()
except:
print("this is source:", source)
print("this is date: ", date)
print(await datetimehandler.current_time(), "ERROR: date for:", source)
print(await datetimehandler.current_time(), "ERROR: date for:", date)
else:
sql = (
"SELECT id "
@ -1295,7 +1300,7 @@ async def check_entry_exist(db_file, source, eid=None,
else:
None
except:
print("no result. this is source:", source)
print(await datetimehandler.current_time(), "ERROR: result for", source)
async def set_settings_value(db_file, key_value):

409
slixfeed/taskhandler.py Normal file
View file

@ -0,0 +1,409 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
FIXME
1) Function check_readiness or event "changed_status" is causing for
triple status messages and also false ones that indicate of lack
of feeds.
TODO
1) Deprecate "add" (see above) and make it interactive.
Slixfeed: Do you still want to add this URL to subscription list?
See: case _ if message_lowercase.startswith("add"):
2) Use loop (with gather) instead of TaskGroup.
3) Assure message delivery before calling a new task.
See https://slixmpp.readthedocs.io/en/latest/event_index.html#term-marker_acknowledged
4) Do not send updates when busy or away.
See https://slixmpp.readthedocs.io/en/latest/event_index.html#term-changed_status
NOTE
1) Self presence
Apparently, it is possible to view self presence.
This means that there is no need to store presences in order to switch or restore presence.
check_readiness
<presence from="slixfeed@canchat.org/xAPgJLHtMMHF" xml:lang="en" id="ab35c07b63a444d0a7c0a9a0b272f301" to="slixfeed@canchat.org/xAPgJLHtMMHF"><status>📂 Send a URL from a blog or a news website.</status><x xmlns="vcard-temp:x:update"><photo /></x></presence>
JID: self.boundjid.bare
MUC: self.nick
"""
import asyncio
import logging
import os
import slixmpp
import datahandler
import datetimehandler
import filehandler
import sqlitehandler
import xmpphandler
main_task = []
jid_tasker = {}
task_manager = {}
loop = asyncio.get_event_loop()
"""
FIXME
Tasks don't begin at the same time.
This is noticeable when calling "check" before "status".
await taskhandler.start_tasks(
self,
jid,
["check", "status"]
)
"""
async def start_tasks(self, jid, tasks):
task_manager[jid] = {}
for task in tasks:
match task:
case "check":
task_manager[jid]["check"] = asyncio.create_task(
check_updates(jid)
)
await task_manager[jid]["check"]
case "status":
task_manager[jid]["status"] = asyncio.create_task(
send_status(self, jid)
)
await task_manager[jid]["status"]
case "interval":
task_manager[jid]["interval"] = asyncio.create_task(
send_update(self, jid)
)
await task_manager[jid]["interval"]
async def clean_tasks(jid, tasks):
for task in tasks:
# if task_manager[jid][task]:
try:
task_manager[jid][task].cancel()
except:
print("No task", task, "for JID", jid, "(clean_tasks)")
"""
TODO
Rename to "start_tasks"
Pass a list (or dict) of tasks to start
NOTE
Consider callback e.g. xmpphandler.Slixfeed.send_status.
Or taskhandler for each protocol or specific taskhandler function.
"""
async def task_jid(self, jid):
"""
JID (Jabber ID) task manager.
Parameters
----------
jid : str
Jabber ID.
"""
enabled = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
"enabled"
)
# print(await datetimehandler.current_time(), "enabled", enabled, jid)
if enabled:
# NOTE Perhaps we want to utilize super with keyword
# arguments in order to know what tasks to initiate.
task_manager[jid] = {}
task_manager[jid]["check"] = asyncio.create_task(
check_updates(jid)
)
task_manager[jid]["status"] = asyncio.create_task(
send_status(self, jid)
)
task_manager[jid]["interval"] = asyncio.create_task(
send_update(self, jid)
)
await task_manager[jid]["check"]
await task_manager[jid]["status"]
await task_manager[jid]["interval"]
# tasks_dict = {
# "check": check_updates,
# "status": send_status,
# "interval": send_update
# }
# for task, function in tasks_dict.items():
# task_manager[jid][task] = asyncio.create_task(
# function(jid)
# )
# await function
else:
# FIXME
# The following error occurs only upon first attempt to stop.
# /usr/lib/python3.11/asyncio/events.py:73: RuntimeWarning: coroutine 'Slixfeed.send_update' was never awaited
# self._args = None
# RuntimeWarning: Enable tracemalloc to get the object allocation traceback
try:
task_manager[jid]["interval"].cancel()
except:
None
await send_status(self, jid)
async def send_update(self, jid, num=None):
"""
Send news items as messages.
Parameters
----------
jid : str
Jabber ID.
num : str, optional
Number. The default is None.
"""
# print("Starting send_update()")
# print(jid)
new = await filehandler.initdb(
jid,
sqlitehandler.get_entry_unread,
num
)
if new:
# TODO Add while loop to assure delivery.
print(await datetimehandler.current_time(), ">>> ACT send_message",jid)
xmpphandler.Slixfeed.send_message(
self,
mto=jid,
mbody=new,
mtype="chat"
)
# TODO Do not refresh task before
# verifying that it was completed.
await refresh_task(
self,
jid,
send_update,
"interval"
)
# interval = await filehandler.initdb(
# jid,
# sqlitehandler.get_settings_value,
# "interval"
# )
# task_manager[jid]["interval"] = loop.call_at(
# loop.time() + 60 * interval,
# loop.create_task,
# send_update(jid)
# )
# print(await datetimehandler.current_time(), "asyncio.get_event_loop().time()")
# print(await datetimehandler.current_time(), asyncio.get_event_loop().time())
# await asyncio.sleep(60 * interval)
# loop.call_later(
# 60 * interval,
# loop.create_task,
# send_update(jid)
# )
# print
# await handle_event()
async def send_status(self, jid):
"""
Send status message.
Parameters
----------
jid : str
Jabber ID.
"""
# print(await datetimehandler.current_time(), "> SEND STATUS",jid)
status_text="🤖️ Slixfeed RSS News Bot"
enabled = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
"enabled"
)
if not enabled:
status_mode = "xa"
status_text = "Send \"Start\" to receive news."
else:
feeds = await filehandler.initdb(
jid,
sqlitehandler.get_number_of_items,
"feeds"
)
print(">>> feeds:", feeds, "jid:", jid)
if not feeds:
print(">>> not feeds:", feeds, "jid:", jid)
status_mode = "available"
status_text = (
"📂️ Send a URL from a blog or a news website."
)
else:
unread = await filehandler.initdb(
jid,
sqlitehandler.get_number_of_entries_unread
)
if unread:
status_mode = "chat"
status_text = (
"📰 You have {} news items to read."
).format(str(unread))
# status_text = (
# "📰 News items: {}"
# ).format(str(unread))
# status_text = (
# "📰 You have {} news items"
# ).format(str(unread))
else:
status_mode = "available"
status_text = "🗞 No news"
# breakpoint()
print(status_text, "for", jid)
xmpphandler.Slixfeed.send_presence(
self,
pshow=status_mode,
pstatus=status_text,
pto=jid,
#pfrom=None
)
# await asyncio.sleep(60 * 20)
await refresh_task(
self,
jid,
send_status,
"status",
"20"
)
# loop.call_at(
# loop.time() + 60 * 20,
# loop.create_task,
# send_status(jid)
# )
async def refresh_task(self, jid, callback, key, val=None):
"""
Apply new setting at runtime.
Parameters
----------
jid : str
Jabber ID.
key : str
Key.
val : str, optional
Value. The default is None.
"""
if not val:
val = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
key
)
# if task_manager[jid][key]:
if jid in task_manager:
try:
task_manager[jid][key].cancel()
except:
print("No task of type", key, "to cancel for JID", jid)
task_manager[jid][key] = loop.call_at(
loop.time() + 60 * float(val),
loop.create_task,
callback(self, jid)
# send_update(jid)
)
# task_manager[jid][key] = loop.call_later(
# 60 * float(val),
# loop.create_task,
# send_update(jid)
# )
# task_manager[jid][key] = send_update.loop.call_at(
# send_update.loop.time() + 60 * val,
# send_update.loop.create_task,
# send_update(jid)
# )
# TODO Take this function out of
# <class 'slixmpp.clientxmpp.ClientXMPP'>
async def check_updates(jid):
"""
Start calling for update check up.
Parameters
----------
jid : str
Jabber ID.
"""
while True:
# print(await datetimehandler.current_time(), "> CHCK UPDATE",jid)
await filehandler.initdb(jid, datahandler.download_updates)
await asyncio.sleep(60 * 90)
# Schedule to call this function again in 90 minutes
# loop.call_at(
# loop.time() + 60 * 90,
# loop.create_task,
# self.check_updates(jid)
# )
"""
NOTE
This is an older system, utilizing local storage instead of XMPP presence.
This function is good for use with protocols that don't have presence.
IRC, LXMF, Matrix, SMTP, Tox.
"""
async def select_file(self):
"""
Initiate actions by JID (Jabber ID).
"""
while True:
db_dir = filehandler.get_default_dbdir()
if not os.path.isdir(db_dir):
msg = (
"Slixfeed can not work without a database.\n"
"To create a database, follow these steps:\n"
"Add Slixfeed contact to your roster.\n"
"Send a feed to the bot by URL:\n"
"https://reclaimthenet.org/feed/"
)
# print(await datetimehandler.current_time(), msg)
print(msg)
else:
os.chdir(db_dir)
files = os.listdir()
# TODO Use loop (with gather) instead of TaskGroup
# for file in files:
# if file.endswith(".db") and not file.endswith(".db-jour.db"):
# jid = file[:-3]
# jid_tasker[jid] = asyncio.create_task(self.task_jid(jid))
# await jid_tasker[jid]
async with asyncio.TaskGroup() as tg:
for file in files:
if (file.endswith(".db") and
not file.endswith(".db-jour.db")):
jid = file[:-3]
main_task.extend([tg.create_task(self.task_jid(jid))])
# main_task = [tg.create_task(self.task_jid(jid))]
# task_manager.update({jid: tg})

View file

@ -3,17 +3,40 @@
"""
FIXME
1) Function check_readiness or event "changed_status" is causing for
triple status messages and also false ones that indicate of lack
of feeds.
TODO
1) Deprecate "add" (see above) and make it interactive.
Slixfeed: Do you still want to add this URL to subscription list?
See: case _ if message_lowercase.startswith("add"):
2) Use loop (with gather) instead of TaskGroup
2) Use loop (with gather) instead of TaskGroup.
3) Assure message delivery before calling a new task.
See https://slixmpp.readthedocs.io/en/latest/event_index.html#term-marker_acknowledged
4) Do not send updates when busy or away.
See https://slixmpp.readthedocs.io/en/latest/event_index.html#term-changed_status
NOTE
1) Self presence
Apparently, it is possible to view self presence.
This means that there is no need to store presences in order to switch or restore presence.
check_readiness
<presence from="slixfeed@canchat.org/xAPgJLHtMMHF" xml:lang="en" id="ab35c07b63a444d0a7c0a9a0b272f301" to="slixfeed@canchat.org/xAPgJLHtMMHF"><status>📂 Send a URL from a blog or a news website.</status><x xmlns="vcard-temp:x:update"><photo /></x></presence>
JID: self.boundjid.bare
MUC: self.nick
"""
import asyncio
import logging
import os
import slixmpp
@ -24,6 +47,7 @@ import datetimehandler
import filehandler
import filterhandler
import sqlitehandler
import taskhandler
main_task = []
jid_tasker = {}
@ -41,10 +65,6 @@ loop = asyncio.get_event_loop()
# return current_time
async def handle_event():
print("Event handled!")
class Slixfeed(slixmpp.ClientXMPP):
"""
Slixmpp
@ -59,21 +79,245 @@ class Slixfeed(slixmpp.ClientXMPP):
# and the XML streams are ready for use. We want to
# listen for this event so that we we can initialize
# our roster.
self.add_event_handler("session_start", self.start)
# self.add_event_handler("session_start", self.select_file)
# self.add_event_handler("session_start", self.send_status)
# self.add_event_handler("session_start", self.check_updates)
self.add_event_handler("session_start", self.start_session)
self.add_event_handler("session_resumed", self.start_session)
self.add_event_handler("got_offline", print("got_offline"))
self.add_event_handler("got_online", self.check_readiness)
self.add_event_handler("changed_status", self.check_readiness)
# self.add_event_handler("changed_subscription", self.check_subscription)
# self.add_event_handler("chatstate_active", self.check_chatstate_active)
# self.add_event_handler("chatstate_gone", self.check_chatstate_gone)
self.add_event_handler("chatstate_composing", self.check_chatstate_composing)
self.add_event_handler("chatstate_paused", self.check_chatstate_paused)
# The message event is triggered whenever a message
# stanza is received. Be aware that that includes
# MUC messages and error messages.
self.add_event_handler("message", self.message)
self.add_event_handler("disconnected", self.reconnect)
self.add_event_handler("groupchat_invite", self.muc_invite)
self.add_event_handler("groupchat_direct_invite", self.muc_invite)
# self.add_event_handler("groupchat_message", self.message)
# self.add_event_handler("disconnected", self.reconnect)
# self.add_event_handler("disconnected", self.inspect_connection)
self.add_event_handler("reactions", self.reactions)
self.add_event_handler("presence_available", self.presence_available)
self.add_event_handler("presence_error", self.presence_error)
self.add_event_handler("presence_subscribe", self.presence_subscribe)
self.add_event_handler("presence_subscribed", self.presence_subscribed)
self.add_event_handler("presence_unavailable", self.presence_unavailable)
self.add_event_handler("presence_unsubscribe", self.presence_unsubscribe)
self.add_event_handler("presence_unsubscribed", self.presence_unsubscribed)
# Initialize event loop
# self.loop = asyncio.get_event_loop()
# handlers for connection events
self.connection_attempts = 0
self.max_connection_attempts = 10
self.add_event_handler("connection_failed", self.on_connection_failed)
self.add_event_handler("session_end", self.on_session_end)
async def start(self, event):
"""
FIXME
This function is triggered even when status is dnd/away/xa.
This results in sending messages even when status is dnd/away/xa.
See function check_readiness.
NOTE
The issue occurs only at bot startup.
Once status is changed to dnd/away/xa, the interval stops - as expected.
TODO
Use "sleep()"
"""
async def presence_available(self, presence):
print("def presence_available", presence["from"].bare)
if presence["from"].bare not in self.boundjid.bare:
jid = presence["from"].bare
await taskhandler.clean_tasks(jid, ["interval", "status", "check"])
await taskhandler.task_jid(self, jid)
# main_task.extend([asyncio.create_task(taskhandler.task_jid(jid))])
# print(main_task)
async def presence_unavailable(self, presence):
if not self.boundjid.bare:
print("presence_unavailable", presence["from"].bare, presence["type"])
print(presence)
async def presence_error(self, presence):
print("presence_error")
print(presence)
async def presence_subscribe(self, presence):
print("presence_subscribe")
print(presence)
async def presence_subscribed(self, presence):
print("presence_subscribed")
print(presence)
async def presence_unsubscribe(self, presence):
print("presence_unsubscribe")
print(presence)
async def presence_unsubscribed(self, presence):
print("presence_unsubscribed")
print(presence)
async def reactions(self, message):
print("reactions")
print(message)
async def muc_invite(self, message):
print(message)
breakpoint()
muc = message
self.add_event_handler(
"muc::[room]::message",
self.message
)
self.plugin['xep_0045'].join_muc(
self.room,
self.nick,
# If a room password is needed, use:
# password=the_room_password,
)
async def on_session_end(self, event):
print(await datetimehandler.current_time(), "Session ended. Attempting to reconnect.")
print(event)
logging.warning("Session ended. Attempting to reconnect.")
await self.recover_connection(event)
async def on_connection_failed(self, event):
print(await datetimehandler.current_time(), "Connection failed. Attempting to reconnect.")
print(event)
logging.warning("Connection failed. Attempting to reconnect.")
await self.recover_connection(event)
async def recover_connection(self, event):
self.connection_attempts += 1
# if self.connection_attempts <= self.max_connection_attempts:
# self.reconnect(wait=5.0) # wait a bit before attempting to reconnect
# else:
# print(await datetimehandler.current_time(),"Maximum connection attempts exceeded.")
# logging.error("Maximum connection attempts exceeded.")
print("Attempt:", self.connection_attempts)
self.reconnect(wait=5.0)
async def inspect_connection(self, event):
print("Disconnected\nReconnecting...")
print(event)
try:
self.reconnect
except:
self.disconnect()
print("Problem reconnecting")
async def check_chatstate_composing(self, message):
print("def check_chatstate_composing")
print(message)
if message["type"] in ("chat", "normal"):
jid = message["from"].bare
status_text="Press \"help\" for manual."
self.send_presence(
# pshow=status_mode,
pstatus=status_text,
pto=jid,
)
async def check_chatstate_paused(self, message):
print("def check_chatstate_paused")
print(message)
if message["type"] in ("chat", "normal"):
jid = message["from"].bare
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_status,
"status",
20
)
async def check_readiness(self, presence):
"""
If available, begin tasks.
If unavailable, eliminate tasks.
Parameters
----------
presence : str
XML stanza </presence>.
Returns
-------
None.
"""
print("def check_readiness", presence["from"].bare, presence["type"])
# # available unavailable away (chat) dnd xa
# print(">>> type", presence["type"], presence["from"].bare)
# # away chat dnd xa
# print(">>> show", presence["show"], presence["from"].bare)
jid = presence["from"].bare
if presence["type"] == "unavailable":
print(">>> unavailable:", jid)
await taskhandler.clean_tasks(
jid,
["interval", "status", "check"]
)
# elif presence["type"] == "available":
# # elif presence["type"] == "available" or presence["show"] == "chat":
# print(">>> available:", jid)
# # breakpoint()
# try:
# if task_manager[jid]:
# for task in task_manager[jid]:
# # print(">>>", jid, "cancel", task)
# task_manager[jid][task].cancel()
# except:
# print(">>> EXC: No task_manager for:", jid)
# await taskhandler.task_jid(jid)
# # print(task_manager[jid])
elif presence["show"] in ("away", "dnd", "xa"):
print(">>> away, dnd, xa:", jid)
await taskhandler.clean_tasks(
jid,
["interval"]
)
await taskhandler.start_tasks(
self,
jid,
["status", "check"]
)
async def resume(self, event):
print("def resume")
print(event)
self.send_presence()
await self.get_roster()
async def start_session(self, event):
"""
Process the session_start event.
@ -86,13 +330,17 @@ class Slixfeed(slixmpp.ClientXMPP):
event does not provide any additional
data.
"""
print("def start_session")
print(event)
self.send_presence()
await self.get_roster()
# for task in main_task:
# task.cancel()
if not main_task:
await self.select_file()
# Deprecated in favour of event "presence_available"
# if not main_task:
# await taskhandler.select_file()
async def message(self, msg):
@ -104,21 +352,23 @@ class Slixfeed(slixmpp.ClientXMPP):
Parameters
----------
self : ?
Self.
msg : str
The received message stanza. See the documentation
for stanza objects and the Message stanza to see
how it may be used.
"""
# print("message")
# print(msg)
if msg["type"] in ("chat", "normal"):
action = 0
jid = msg["from"].bare
db_dir = filehandler.get_default_dbdir()
os.chdir(db_dir)
if jid + ".db" not in os.listdir():
await self.task_jid(jid)
# # Begin processing new JID
# # Deprecated in favour of event "presence_available"
# db_dir = filehandler.get_default_dbdir()
# os.chdir(db_dir)
# if jid + ".db" not in os.listdir():
# await taskhandler.task_jid(jid)
message = " ".join(msg["body"].split())
message_lowercase = message.lower()
@ -135,6 +385,7 @@ class Slixfeed(slixmpp.ClientXMPP):
"\n"
"Send a URL of a news website to start."
)
print(task_manager[jid])
case _ if message_lowercase.startswith("add"):
message = message[4:]
url = message.split(" ")[0]
@ -145,7 +396,13 @@ class Slixfeed(slixmpp.ClientXMPP):
datahandler.add_feed_no_check,
[url, title]
)
await self.send_status(jid)
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_status,
"status",
20
)
else:
action = "Missing URL."
case _ if message_lowercase.startswith("allow"):
@ -196,15 +453,28 @@ class Slixfeed(slixmpp.ClientXMPP):
).format(val)
else:
action = "Missing keywords."
case _ if message_lowercase.startswith("http"):
case _ if (message_lowercase.startswith("http") or
message_lowercase.startswith("feed:")):
url = message
if url.startswith("feed:"):
url = await datahandler.feed_to_http(url)
action = await filehandler.initdb(
jid,
datahandler.add_feed,
url
)
# action = "> " + message + "\n" + action
await self.send_status(jid)
# FIXME Make the taskhandler to update status message
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_status,
"status",
20
)
# NOTE This would show the number of new unread entries
# await taskhandler.clean_tasks(jid, ["status"])
# await taskhandler.send_status(jid)
case _ if message_lowercase.startswith("feeds"):
query = message[6:]
if query:
@ -240,9 +510,10 @@ class Slixfeed(slixmpp.ClientXMPP):
sqlitehandler.set_settings_value,
[key, val]
)
await self.refresh_task(
await taskhandler.refresh_task(
self,
jid,
self.send_update,
taskhandler.send_update,
key,
val
)
@ -253,9 +524,21 @@ class Slixfeed(slixmpp.ClientXMPP):
action = "Missing value."
case _ if message_lowercase.startswith("next"):
num = message[5:]
await self.send_update(jid, num)
await self.send_status(jid)
# await self.refresh_task(jid, key, val)
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_update,
"interval",
num
)
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_status,
"status",
20
)
# await taskhandler.refresh_task(jid, key, val)
case _ if message_lowercase.startswith("quantum"):
key = message[:7]
val = message[8:]
@ -293,7 +576,13 @@ class Slixfeed(slixmpp.ClientXMPP):
sqlitehandler.remove_feed,
ix
)
await self.send_status(jid)
await taskhandler.refresh_task(
self,
jid,
taskhandler.send_status,
"status",
20
)
else:
action = "Missing feed ID."
case _ if message_lowercase.startswith("search"):
@ -320,7 +609,7 @@ class Slixfeed(slixmpp.ClientXMPP):
sqlitehandler.set_settings_value,
[key, val]
)
asyncio.create_task(self.task_jid(jid))
asyncio.create_task(taskhandler.task_jid(self, jid))
action = "Updates are enabled."
# print(await datetimehandler.current_time(), "task_manager[jid]")
# print(task_manager[jid])
@ -357,7 +646,7 @@ class Slixfeed(slixmpp.ClientXMPP):
# except:
# action = "Updates are already disabled."
# # print("Updates are already disabled. Nothing to do.")
# # await self.send_status(jid)
# # await taskhandler.send_status(jid)
key = "enabled"
val = 0
await filehandler.initdb(
@ -365,11 +654,16 @@ class Slixfeed(slixmpp.ClientXMPP):
sqlitehandler.set_settings_value,
[key, val]
)
await self.task_jid(jid)
await taskhandler.clean_tasks(jid, ["interval"])
self.send_presence(
pshow="xa",
pstatus="Send \"Start\" to receive news.",
pto=jid,
)
action = "Updates are disabled."
case "support":
# TODO Send an invitation.
action = "xmpp:slixmpp@muc.poez.io?join"
action = "Join xmpp:slixmpp@muc.poez.io?join"
case _:
action = (
"Unknown command. "
@ -378,283 +672,6 @@ class Slixfeed(slixmpp.ClientXMPP):
if action: msg.reply(action).send()
async def select_file(self):
"""
Initiate actions by JID (Jabber ID).
Parameters
----------
self : ?
Self.
"""
while True:
db_dir = filehandler.get_default_dbdir()
if not os.path.isdir(db_dir):
msg = (
"Slixfeed can not work without a database.\n"
"To create a database, follow these steps:\n"
"Add Slixfeed contact to your roster.\n"
"Send a feed to the bot by URL:\n"
"https://reclaimthenet.org/feed/"
)
# print(await datetimehandler.current_time(), msg)
print(msg)
else:
os.chdir(db_dir)
files = os.listdir()
# TODO Use loop (with gather) instead of TaskGroup
# for file in files:
# if file.endswith(".db") and not file.endswith(".db-jour.db"):
# jid = file[:-3]
# jid_tasker[jid] = asyncio.create_task(self.task_jid(jid))
# await jid_tasker[jid]
async with asyncio.TaskGroup() as tg:
for file in files:
if (file.endswith(".db") and
not file.endswith(".db-jour.db")):
jid = file[:-3]
main_task.extend([tg.create_task(self.task_jid(jid))])
# main_task = [tg.create_task(self.task_jid(jid))]
# task_manager.update({jid: tg})
async def task_jid(self, jid):
"""
JID (Jabber ID) task manager.
Parameters
----------
self : ?
Self.
jid : str
Jabber ID.
"""
enabled = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
"enabled"
)
# print(await datetimehandler.current_time(), "enabled", enabled, jid)
if enabled:
task_manager[jid] = {}
task_manager[jid]["check"] = asyncio.create_task(
check_updates(jid)
)
task_manager[jid]["status"] = asyncio.create_task(
self.send_status(jid)
)
task_manager[jid]["interval"] = asyncio.create_task(
self.send_update(jid)
)
await task_manager[jid]["check"]
await task_manager[jid]["status"]
await task_manager[jid]["interval"]
else:
# FIXME
# The following error occurs only upon first attempt to stop.
# /usr/lib/python3.11/asyncio/events.py:73: RuntimeWarning: coroutine 'Slixfeed.send_update' was never awaited
# self._args = None
# RuntimeWarning: Enable tracemalloc to get the object allocation traceback
try:
task_manager[jid]["interval"].cancel()
except:
None
await self.send_status(jid)
async def send_update(self, jid, num=None):
"""
Send news items as messages.
Parameters
----------
self : ?
Self.
jid : str
Jabber ID.
num : str, optional
Number. The default is None.
"""
# print("Starting send_update()")
# print(jid)
new = await filehandler.initdb(
jid,
sqlitehandler.get_entry_unread,
num
)
if new:
print(await datetimehandler.current_time(), "> SEND UPDATE",jid)
self.send_message(
mto=jid,
mbody=new,
mtype="chat"
)
await self.refresh_task(
jid,
self.send_update,
"interval"
)
# interval = await filehandler.initdb(
# jid,
# sqlitehandler.get_settings_value,
# "interval"
# )
# task_manager[jid]["interval"] = loop.call_at(
# loop.time() + 60 * interval,
# loop.create_task,
# self.send_update(jid)
# )
# print(await datetimehandler.current_time(), "asyncio.get_event_loop().time()")
# print(await datetimehandler.current_time(), asyncio.get_event_loop().time())
# await asyncio.sleep(60 * interval)
# loop.call_later(
# 60 * interval,
# loop.create_task,
# self.send_update(jid)
# )
# print
# await handle_event()
async def send_status(self, jid):
"""
Send status message.
Parameters
----------
self : ?
Self.
jid : str
Jabber ID.
"""
print(await datetimehandler.current_time(), "> SEND STATUS",jid)
enabled = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
"enabled"
)
if not enabled:
status_mode = "xa"
status_text = "Send \"Start\" to receive news."
else:
feeds = await filehandler.initdb(
jid,
sqlitehandler.get_number_of_items,
"feeds"
)
if not feeds:
status_mode = "available"
status_text = (
"📂️ Send a URL from a blog or a news website."
)
else:
unread = await filehandler.initdb(
jid,
sqlitehandler.get_number_of_entries_unread
)
if unread:
status_mode = "chat"
status_text = (
"📰 You have {} news items to read."
).format(str(unread))
# status_text = (
# "📰 News items: {}"
# ).format(str(unread))
# status_text = (
# "📰 You have {} news items"
# ).format(str(unread))
else:
status_mode = "available"
status_text = "🗞 No news"
# print(status_text, "for", jid)
self.send_presence(
pshow=status_mode,
pstatus=status_text,
pto=jid,
#pfrom=None
)
# await asyncio.sleep(60 * 20)
await self.refresh_task(
jid,
self.send_status,
"status",
"20"
)
# loop.call_at(
# loop.time() + 60 * 20,
# loop.create_task,
# self.send_status(jid)
# )
async def refresh_task(self, jid, callback, key, val=None):
"""
Apply new setting at runtime.
Parameters
----------
self : ?
Self.
jid : str
Jabber ID.
key : str
Key.
val : str, optional
Value. The default is None.
"""
if not val:
val = await filehandler.initdb(
jid,
sqlitehandler.get_settings_value,
key
)
if jid in task_manager:
task_manager[jid][key].cancel()
task_manager[jid][key] = loop.call_at(
loop.time() + 60 * float(val),
loop.create_task,
callback(jid)
# self.send_update(jid)
)
# task_manager[jid][key] = loop.call_later(
# 60 * float(val),
# loop.create_task,
# self.send_update(jid)
# )
# task_manager[jid][key] = self.send_update.loop.call_at(
# self.send_update.loop.time() + 60 * val,
# self.send_update.loop.create_task,
# self.send_update(jid)
# )
# TODO Take this function out of
# <class 'slixmpp.clientxmpp.ClientXMPP'>
async def check_updates(jid):
"""
Start calling for update check up.
Parameters
----------
jid : str
Jabber ID.
"""
while True:
print(await datetimehandler.current_time(), "> CHCK UPDATE",jid)
await filehandler.initdb(jid, datahandler.download_updates)
await asyncio.sleep(60 * 90)
# Schedule to call this function again in 90 minutes
# loop.call_at(
# loop.time() + 60 * 90,
# loop.create_task,
# self.check_updates(jid)
# )
def print_help():
"""
Print help manual.
@ -735,7 +752,9 @@ def print_help():
# " Send a Plain Text file of your news items.\n"
# "\n"
"SUPPORT\n"
" support"
" help\n"
" Print this help manual.\n"
" support\n"
" Join xmpp:slixmpp@muc.poez.io?join\n"
"\n"
# "PROTOCOLS\n"