diff --git a/recipes/android_police.recipe b/recipes/android_police.recipe new file mode 100644 index 0000000000..a3b9a4114f --- /dev/null +++ b/recipes/android_police.recipe @@ -0,0 +1,65 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718384518(BasicNewsRecipe): + title = 'Android Police' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Android Police reports on Android, yes — news, reviews, how-to and buyers’ guides —' + ' but they also cover the broader mobile industry, including tablets, wearables, personal audio,' + ' the smart home, and how politics and regulation shape the way they use those products.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/ap-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Phones + ('Phones', 'https://www.androidpolice.com/feed/phones/'), + ('News about Phones', 'https://www.androidpolice.com/feed/phones-news/'), + ('Guides about Phones', 'https://www.androidpolice.com/feed/phones-guide/'), + ('Phones Features', 'https://www.androidpolice.com/feed/phones-features/'), + ('Phones & Accessory Reviews', 'https://www.androidpolice.com/feed/phones-reviews/'), + #Google + ('Google', 'https://www.androidpolice.com/feed/google/'), + ('News about Google', 'https://www.androidpolice.com/feed/news-google/'), + ('Google Applications', 'https://www.androidpolice.com/feed/tag/google-app/'), + ('Guides about Google', 'https://www.androidpolice.com/feed/guides-google/'), + ('Features about Google', 'https://www.androidpolice.com/feed/features-google/'), + #Operating Systems + ('Operating Systems', 'https://www.androidpolice.com/feed/operating-systems/'), + ('News about Operating Systems', 'https://www.androidpolice.com/feed/news-operating-systems/'), + ('Guides about Operating Systems', 'https://www.androidpolice.com/feed/guides-operating-systems/'), + ('Features on Operating Systems', 'https://www.androidpolice.com/feed/features-operating-systems/'), + #Chromebooks + ('Chromebooks', 'https://www.androidpolice.com/feed/laptops/'), + ('News about Chromebooks', 'https://www.androidpolice.com/feed/news-chromebooks/'), + ('Guides about Chromebooks', 'https://www.androidpolice.com/feed/guides-chromebooks/'), + ('Chromebook & Laptop Reviews', 'https://www.androidpolice.com/feed/reviews-chromebooks/'), + #Gadgets + ('Gadgets', 'https://www.androidpolice.com/feed/gadgets/'), + ('Smartwatches & Wearables', 'https://www.androidpolice.com/feed/wearables/'), + ('Audio', 'https://www.androidpolice.com/feed/tag/audio/'), + ('Accessories', 'https://www.androidpolice.com/feed/accessories/'), + ('Smart Home', 'https://www.androidpolice.com/feed/smart-home/'), + ('Applications & Games', 'https://www.androidpolice.com/feed/applications-games/'), + #Reviews + ('Reviews', 'https://www.androidpolice.com/feed/reviews/'), + ('Phones & Accessory Reviews', 'https://www.androidpolice.com/feed/phones-reviews/'), + ('Smartwatch & Wearable Reviews', 'https://www.androidpolice.com/feed/wearable-reviews/'), + ('Tablet Reviews', 'https://www.androidpolice.com/feed/tablet-reviews/'), + ('Headphones & Earbuds Reviews', 'https://www.androidpolice.com/feed/audio-reviews/'), + ('Smart Home & Smart TV Reviews', 'https://www.androidpolice.com/feed/smart-home-reviews/'), + ('Android Police’s Product Review Awards', 'https://www.androidpolice.com/feed/awards/'), + + ('Buyer’s Guides', 'https://www.androidpolice.com/feed/the-best/'), + ] diff --git a/recipes/backyard_boss.recipe b/recipes/backyard_boss.recipe new file mode 100644 index 0000000000..783fd11183 --- /dev/null +++ b/recipes/backyard_boss.recipe @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718382046(BasicNewsRecipe): + title = 'Backyard Boss' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Backyard Boss is a place where backyard enthusiasts and lovers of the great outdoors' + ' can gather to find everything you need to know about gardening, landscaping, and more.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/byb-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Gardening + ('Gardening', 'https://www.backyardboss.net/feed/category/gardening/'), + ('Outdoor Gardening', 'https://www.backyardboss.net/feed/category/gardening/outdoor-gardening/'), + ('Indoor Gardening', 'https://www.backyardboss.net/feed/category/gardening/indoor-gardening/'), + ('Fruits & Vegetables', 'https://www.backyardboss.net/feed/tag/gardening/fruits-and-vegetables/'), + ('Houseplants', 'https://www.backyardboss.net/feed/category/gardening/houseplants/'), + ('Plant Care', 'https://www.backyardboss.net/feed/category/gardening/plant-care/'), + #Backyard + ('Backyard', 'https://www.backyardboss.net/feed/category/backyard/'), + ('Home Improvement', 'https://www.backyardboss.net/feed/category/backyard/home-improvement/'), + ('Lawn Care', 'https://www.backyardboss.net/feed/category/backyard/lawn-care/'), + ('Landscaping', 'https://www.backyardboss.net/feed/category/backyard/landscape-industry/'), + ('Barbecue', 'https://www.backyardboss.net/feed/category/backyard/bbq/'), + ('Reviews', 'https://www.backyardboss.net/feed/category/backyard/reviews/'), + #DIY & Project + ('DIY & Projects', 'https://www.backyardboss.net/feed/category/diy/'), + ('How-To', 'https://www.backyardboss.net/feed/category/diy/how-to/'), + ('Designs & Ideas', 'https://www.backyardboss.net/feed/category/diy/designs-and-ideas/'), + ('Tips & Guides', 'https://www.backyardboss.net/feed/category/diy/tips-and-guide/'), + ] diff --git a/recipes/car_buzz.recipe b/recipes/car_buzz.recipe new file mode 100644 index 0000000000..5ad4b4fd71 --- /dev/null +++ b/recipes/car_buzz.recipe @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718369687(BasicNewsRecipe): + title = 'Car Buzz' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Founded in 2010, CarBuzz was the vision of a team of gearheads with a desire' + ' to share their passion for cars with the world. What resulted was the world’s premier car-related news app.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/cb-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('News', 'https://carbuzz.com/feed/category/news/'), + ('Features', 'https://carbuzz.com/feed/category/features/'), + ('Car Reviews', 'https://carbuzz.com/feed/category/car-reviews/'), + ('Car Advice', 'https://carbuzz.com/feed/category/car-advice/'), + ('Threads', 'https://carbuzz.com/feed/category/threads/'), + ] diff --git a/recipes/dual_shockers.recipe b/recipes/dual_shockers.recipe new file mode 100644 index 0000000000..6aba024f33 --- /dev/null +++ b/recipes/dual_shockers.recipe @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718125614(BasicNewsRecipe): + title = 'Dual SHOCKERS' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Over the past 15+ years Dual SHOCKERS become a staple of the games media landscape.' + ' Their team of gaming experts have covered some of the biggest events in the gaming industry.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/ds-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Gaming News', 'https://www.dualshockers.com/feed/video-game-news/'), + ('Originals', 'https://www.dualshockers.com/feed/originals/'), + ('Interviews', 'https://www.dualshockers.com/feed/interviews/'), + ('Culture', 'https://www.dualshockers.com/feed/culture/'), + ('Guides', 'https://www.dualshockers.com/feed/guides/'), + ('Game Reviews', 'https://www.dualshockers.com/feed/gaming-reviews/'), + ('Anime', 'https://www.dualshockers.com/feed/anime/'), + ('Lists', 'https://www.dualshockers.com/feed/lists/'), + ('Movies', 'https://www.dualshockers.com/feed/movies/'), + ('Television', 'https://www.dualshockers.com/feed/tv/'), + ] diff --git a/recipes/football_fancast.recipe b/recipes/football_fancast.recipe new file mode 100644 index 0000000000..8644b45253 --- /dev/null +++ b/recipes/football_fancast.recipe @@ -0,0 +1,67 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718373345(BasicNewsRecipe): + title = 'Football Fancast' + language = 'en' + __author__ = 'Spicy Poison' + description = 'Football Fancast is a leading independent football news outlet serving with organic content, unique football news and analysis.' + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/ffc-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #EURO 2024 + ('EURO 2024', 'https://www.footballfancast.com/feed/tag/euro-2024/'), + ('EURO England', 'https://www.footballfancast.com/feed/tag/england/'), + ('EURO Scotland', 'https://www.footballfancast.com/feed/tag/scotland/'), + ('EURO Groups', 'https://www.footballfancast.com/feed/tag/euro-2024-groups/'), + ('History of the EUROs', 'https://www.footballfancast.com/feed/tag/history-of-the-euros/'), + #Transfer Rumours + ('Transfer Focus', 'https://www.footballfancast.com/feed/tag/transfer-focus/'), + ('Saudi Pro League', 'https://www.footballfancast.com/feed/tag/saudi-pro-league/'), + ('Marcus Rashford', 'https://www.footballfancast.com/feed/tag/marcus-rashford/'), + ('Mohamed Salah', 'https://www.footballfancast.com/feed/tag/mohamed-salah/'), + ('Michael Olise', 'https://www.footballfancast.com/feed/tag/michael-olise/'), + ('Bruno Guimarães', 'https://www.footballfancast.com/feed/tag/bruno-guimaraes/'), + ('Fabrizio Romano', 'https://www.footballfancast.com/feed/tag/fabrizio-romano/'), + #Premier League + ('Premier League', 'https://www.footballfancast.com/feed/tag/premier-league/'), + ('Arsenal', 'https://www.footballfancast.com/feed/tag/arsenal/'), + ('Aston Villa', 'https://www.footballfancast.com/feed/tag/aston-villa/'), + ('Chelsea', 'https://www.footballfancast.com/feed/tag/chelsea/'), + ('Everton', 'https://www.footballfancast.com/feed/tag/everton/'), + ('Livepool', 'https://www.footballfancast.com/feed/tag/liverpool/'), + ('Manchester City', 'https://www.footballfancast.com/feed/tag/manchester-city/'), + ('Manchester United', 'https://www.footballfancast.com/feed/tag/manchester-united/'), + ('Tottenham Hotspur', 'https://www.footballfancast.com/feed/tag/tottenham-hotspur/'), + ('West Ham United', 'https://www.footballfancast.com/feed/tag/west-ham-united/'), + #European Leagues + ('La Liga', 'https://www.footballfancast.com/feed/la-liga/'), + ('Bundesliga', 'https://www.footballfancast.com/feed/bundesliga/'), + ('Ligue 1', 'https://www.footballfancast.com/feed/ligue-1/'), + ('Serie A', 'https://www.footballfancast.com/feed/serie-a/'), + #Champions League + ('Champions League', 'https://www.footballfancast.com/feed/champions-league/'), + ('Real Madrid', 'https://www.footballfancast.com/feed/tag/real-madrid/'), + ('Barcelona', 'https://www.footballfancast.com/feed/tag/barcelona/'), + ('Bayern Munich', 'https://www.footballfancast.com/feed/tag/bayern-munich/'), + ('Paris Saint-Germain', 'https://www.footballfancast.com/feed/tag/psg/'), + ('Europa League', 'https://www.footballfancast.com/feed/europa-league/'), + #Europa League + ('ROMA', 'https://www.footballfancast.com/feed/tag/roma/'), + ('Villarreal', 'https://www.footballfancast.com/feed/tag/villarreal/'), + + ('Football Association Challenge Cup', 'https://www.footballfancast.com/feed/fa-cup/'), + ('English Football League Cup', 'https://www.footballfancast.com/feed/efl-cup/'), + ('Gaming', 'https://www.footballfancast.com/feed/gaming/'), + ] diff --git a/recipes/game_rant.recipe b/recipes/game_rant.recipe new file mode 100644 index 0000000000..39f5b4043c --- /dev/null +++ b/recipes/game_rant.recipe @@ -0,0 +1,46 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718106336(BasicNewsRecipe): + title = 'Game Rant' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Game Rant is a Digital Publication run by gamers with articles published for gamers' + ' with an emphasis on news, reviews, unique features, and interviews.' + ' Their information aims to tap into the topics and subjects that they, as gamers, are most passionate about.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/gr-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Game News', 'https://gamerant.com/feed/gaming/'), + #Platforms + ('Platforms', 'https://gamerant.com/feed/platforms/'), + ('Playstation', 'https://gamerant.com/feed/tag/playstation/'), + ('Xbox', 'https://gamerant.com/feed/tag/xbox/'), + ('Nintendo', 'https://gamerant.com/feed/tag/nintendo/'), + ('PC Gaming', 'https://gamerant.com/feed/tag/pc/'), + ('Mobile Gaming', 'https://gamerant.com/feed/tag/mobile/'), + #Game Rant Originals + ('Game Rant Originals', 'https://gamerant.com/feed/originals/'), + ('Editorials', 'https://gamerant.com/feed/editorial/'), + ('Game Reviews', 'https://gamerant.com/feed/game-reviews/'), + ('Explainer', 'https://gamerant.com/feed/explainer/'), + ('Game Rant Advance', 'https://gamerant.com/feed/game-rant-advance/'), + + ('Strategy Guides', 'https://gamerant.com/feed/strategy-guide/'), + ('Threads', 'https://gamerant.com/feed/threads/'), + ('Movies & TV', 'https://gamerant.com/feed/movies-tv/'), + ('Anime', 'https://gamerant.com/feed/anime/'), + ('Lists', 'https://gamerant.com/feed/lists/'), + ] diff --git a/recipes/gates_notes.recipe b/recipes/gates_notes.recipe index 17134dd53a..5b7844f819 100644 --- a/recipes/gates_notes.recipe +++ b/recipes/gates_notes.recipe @@ -2,6 +2,7 @@ # vim:fileencoding=utf-8 from calibre.web.feeds.news import BasicNewsRecipe + class AdvancedUserRecipe1716089864(BasicNewsRecipe): title = 'Gates Notes' description = 'The Blog of Bill Gates.' diff --git a/recipes/give_me_sports.recipe b/recipes/give_me_sports.recipe new file mode 100644 index 0000000000..a5ebb6489b --- /dev/null +++ b/recipes/give_me_sports.recipe @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718371374(BasicNewsRecipe): + title = 'Give Me Sports' + language = 'en' + __author__ = 'Spicy Poison' + description = 'Give Me Sports is a leading independent sports digital media publication' + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/gms-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Premier League', 'https://www.givemesport.com/feed/tag/premier-league/'), + ('UEFA Champions League', 'https://www.givemesport.com/feed/tag/champions-league/'), + ('National Basketball Association', 'https://www.givemesport.com/feed/tag/nba/'), + ('National Football League', 'https://www.givemesport.com/feed/tag/nfl/'), + ('Boxing', 'https://www.givemesport.com/feed/boxing/'), + ('Ultimate Fighting Championship', 'https://www.givemesport.com/feed/tag/ufc/'), + ('EA Sports FIFA', 'https://www.givemesport.com/feed/tag/ea-sports-fifa/'), + ('World Wrestling Entertainment', 'https://www.givemesport.com/feed/tag/wwe/'), + ('Formula 1', 'https://www.givemesport.com/feed/tag/formula-1/'), + ('Tennis', 'https://www.givemesport.com/feed/tennis/'), + ('Transfer News & Rumours', 'https://www.givemesport.com/feed/tag/transfer-rumours/'), + ('Euro 2024', 'https://www.givemesport.com/feed/euro-2024/'), + ('COPA America', 'https://www.givemesport.com/feed/tag/copa-america/'), + ] diff --git a/recipes/hardcore_gamer.recipe b/recipes/hardcore_gamer.recipe new file mode 100644 index 0000000000..04e5f8025d --- /dev/null +++ b/recipes/hardcore_gamer.recipe @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718126035(BasicNewsRecipe): + title = 'Hardcore Gamer' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'One of the most frequented gaming journalism publications in the world,' + ' Hardcore Gamer has one of the largest active video game review libraries' + ' in addition to top video production and heralded long-form content.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/hg-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Gaming News', 'https://hardcoregamer.com/feed/category/news/'), + ('Reviews', 'https://hardcoregamer.com/feed/category/reviews/'), + ('Previews', 'https://hardcoregamer.com/feed/category/previews/'), + ('Guides', 'https://hardcoregamer.com/feed/category/guides/'), + ('Features', 'https://hardcoregamer.com/feed/category/features/'), + ('Interviews', 'https://hardcoregamer.com/feed/category/features/interviews/'), + ] diff --git a/recipes/hot_cars.recipe b/recipes/hot_cars.recipe new file mode 100644 index 0000000000..bb7aa0cfd0 --- /dev/null +++ b/recipes/hot_cars.recipe @@ -0,0 +1,50 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718126839(BasicNewsRecipe): + title = 'Hot Cars' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'HotCars.com is the go-to site for enthusiasts to keep up to date on everything in the automotive industry.' + ' Today, they serve over 5 million readers a month with the latest auto news, car reviews, and exclusives on the car,' + ' pickup truck, and motorcycle industries.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/hc-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Car Types + ('Fast Cars', 'https://www.hotcars.com/feed/category/fast-cars/'), + ('Classic Cars', 'https://www.hotcars.com/feed/tag/classic-cars/'), + ('Muscle Cars', 'https://www.hotcars.com/feed/category/muscle-cars/'), + ('Pickups & SUVs', 'https://www.hotcars.com/feed/category/pickup-trucks-suvs/'), + ('Electric Cars', 'https://www.hotcars.com/feed/category/electric-cars/'), + ('Mass Market Cars', 'https://www.hotcars.com/feed/category/mass-market-cars/'), + ('Luxury Cars', 'https://www.hotcars.com/feed/tag/luxury-cars/'), + ('Motorcycles', 'https://www.hotcars.com/feed/category/motorcycles/'), + #Hot Cars Exclusives + ('Hot Cars Exclusives', 'https://www.hotcars.com/feed/category/hotcars-exclusives/'), + ('Car Reviews', 'https://www.hotcars.com/feed/category/car-reviews/'), + ('Car Guides', 'https://www.hotcars.com/feed/category/car-guides/'), + ('Car Renders', 'https://www.hotcars.com/feed/category/car-renders/'), + ('Hot Cars Awards', 'https://www.hotcars.com/feed/category/hotcars-awards/'), + #Car Culture + ('News', 'https://www.hotcars.com/feed/category/news/'), + ('JDM Life', 'https://www.hotcars.com/feed/category/jdm-life/'), + ('Car TV', 'https://www.hotcars.com/feed/category/cars-on-tv/'), + ('Car Engines', 'https://www.hotcars.com/feed/category/car-engines/'), + ('Car Culture', 'https://www.hotcars.com/feed/category/car-culture/'), + ('Famous Collections', 'https://www.hotcars.com/feed/category/car-collections/'), + + ('Threads', 'https://www.hotcars.com/feed/threads/'), + ] diff --git a/recipes/lifehacker.recipe b/recipes/lifehacker.recipe index a9839bb0cb..a631b0d820 100644 --- a/recipes/lifehacker.recipe +++ b/recipes/lifehacker.recipe @@ -2,11 +2,14 @@ # vim:fileencoding=utf-8 from calibre.web.feeds.news import BasicNewsRecipe + class AdvancedUserRecipe1718091380(BasicNewsRecipe): title = 'LifeHacker' language = 'en' __author__ = 'Spicy Poison' - description = 'Lifehacker covers tech, cooking, health, finance, entertainment, parenting, home improvement, gardening, careers, and more, and our goal is to offer reliable tech help and credible, practical, science-based advice.' + description = ( + 'Lifehacker covers tech, cooking, health, finance, entertainment, parenting,' + ' home improvement, gardening, careers, and more, and our goal is to offer reliable tech help and credible, practical, science-based advice.') oldest_article = 30 max_articles_per_feed = 50 encoding = 'utf-8' @@ -15,4 +18,4 @@ class AdvancedUserRecipe1718091380(BasicNewsRecipe): feeds = [ ('All Articles', 'https://lifehacker.com/feed/rss'), - ] \ No newline at end of file + ] diff --git a/recipes/pocket_lint.recipe b/recipes/pocket_lint.recipe new file mode 100644 index 0000000000..c63562d2f3 --- /dev/null +++ b/recipes/pocket_lint.recipe @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718387215(BasicNewsRecipe): + title = 'Pocket-lint' + language = 'en' + __author__ = 'Spicy Poison' + description = 'Pocket-lint have been geeking out over the intersection of devices, lifestyle hardware, and entertainment news.' + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/pl-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Segments + ('Devices', 'https://www.pocket-lint.com/feed/devices-segment/'), + ('Entertainment', 'https://www.pocket-lint.com/feed/entertainment-segment/'), + ('Lifestyle', 'https://www.pocket-lint.com/feed/lifestyle-segment/'), + ('Audio Video', 'https://www.pocket-lint.com/feed/audio-video-segment/'), + #Segments + ('News', 'https://www.pocket-lint.com/feed/news/'), + ('Features', 'https://www.pocket-lint.com/feed/features/'), + ('Editorials', 'https://www.pocket-lint.com/feed/editorials/'), + ('Interviews', 'https://www.pocket-lint.com/feed/interviews/'), + ('Lists', 'https://www.pocket-lint.com/feed/lists/'), + ('Guides', 'https://www.pocket-lint.com/feed/guides/'), + ('Hubs', 'https://www.pocket-lint.com/feed/hubs/'), + #Best Products + ('Reviews', 'https://www.pocket-lint.com/feed/reviews/'), + ('Buyer’s Guides', 'https://www.pocket-lint.com/feed/buyers-guides/'), + ('Comparisons', 'https://www.pocket-lint.com/feed/comparisons/'), + ('Gift Guides', 'https://www.pocket-lint.com/feed/gift-guides/'), + ('Deals', 'https://www.pocket-lint.com/feed/deals/'), + #Topics + ('Apps', 'https://www.pocket-lint.com/feed/apps/'), + ('Augmented Reality & Virtual Reality', 'https://www.pocket-lint.com/feed/ar-vr/'), + ('Cameras', 'https://www.pocket-lint.com/feed/cameras/'), + ('Cars', 'https://www.pocket-lint.com/feed/cars/'), + ('Fitness Trackers', 'https://www.pocket-lint.com/feed/fitness-trackers/'), + ('Gadgets', 'https://www.pocket-lint.com/feed/gadgets/'), + ('Games', 'https://www.pocket-lint.com/feed/games/'), + ('Gaming Hardware', 'https://www.pocket-lint.com/feed/gaming-hardware/'), + ('Headphones', 'https://www.pocket-lint.com/feed/headphones/'), + ('Laptops', 'https://www.pocket-lint.com/feed/laptops/'), + ('Movies & TV', 'https://www.pocket-lint.com/feed/movies-tv/'), + ('Phones', 'https://www.pocket-lint.com/feed/phones/'), + ('Smart Home', 'https://www.pocket-lint.com/feed/smart-home/'), + ('Wearables', 'https://www.pocket-lint.com/feed/smartwatches/'), + ('Speakers', 'https://www.pocket-lint.com/feed/speakers/'), + ('Tablets', 'https://www.pocket-lint.com/feed/tablets/'), + ('TVs', 'https://www.pocket-lint.com/feed/tv/'), + + ('Pocket-lint Awards', 'https://www.pocket-lint.com/feed/awards/'), + ] diff --git a/recipes/simple_flying.recipe b/recipes/simple_flying.recipe new file mode 100644 index 0000000000..542bad9823 --- /dev/null +++ b/recipes/simple_flying.recipe @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718370158(BasicNewsRecipe): + title = 'Simple Flying' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'Simple Flying started in 2018 and has soared to prominence as the world’s' + ' leading digital publication dedicated to aviation news. Their extensive coverage spans commercial,' + 'military, and private aviation sectors, exploring everything from the latest developments in airline' + ' and manufacturer news to insights into the smallest aviation startups.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/sf-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Features + ('Analysis', 'https://simpleflying.com/feed/category/analysis/'), + ('History', 'https://simpleflying.com/feed/category/history/'), + ('Exclusives', 'https://simpleflying.com/feed/category/exclusives/'), + #By Region + ('Asia', 'https://simpleflying.com/feed/category/asia/'), + ('Europe', 'https://simpleflying.com/feed/category/europe/'), + ('North America', 'https://simpleflying.com/feed/category/north-america/'), + ('Africa', 'https://simpleflying.com/feed/category/africa/'), + ('Rest of World', 'https://simpleflying.com/feed/category/rest-of-world/'), + #Travel + ('Trip Reports', 'https://simpleflying.com/feed/category/trip-reports/'), + ('Passanger Experience', 'https://simpleflying.com/feed/category/passenger-experience/'), + + ('Private Aviation', 'https://simpleflying.com/feed/category/private-aviation/'), + ('Airline Loyalty', 'https://simpleflying.com/feed/category/loyalty/'), + ] diff --git a/recipes/techcrunch.recipe b/recipes/techcrunch.recipe index f8bc3b96ba..22e91777b8 100644 --- a/recipes/techcrunch.recipe +++ b/recipes/techcrunch.recipe @@ -2,6 +2,7 @@ # vim:fileencoding=utf-8 from calibre.web.feeds.news import BasicNewsRecipe + class AdvancedUserRecipe1718089036(BasicNewsRecipe): title = 'TechCrunch' language = 'en' @@ -53,4 +54,4 @@ class AdvancedUserRecipe1718089036(BasicNewsRecipe): ('TikTok', 'https://techcrunch.com/tag/tiktok/feed/'), #Other ('Events Archive', 'https://techcrunch.com/events/feed/'), -] \ No newline at end of file +] diff --git a/recipes/the_gamer.recipe b/recipes/the_gamer.recipe new file mode 100644 index 0000000000..3e5acc747d --- /dev/null +++ b/recipes/the_gamer.recipe @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718109535(BasicNewsRecipe): + title = 'The Gamer' + language = 'en' + __author__ = 'Spicy Poison' + description = 'TheGamer is a gaming site with a different spin on things, and we break some of the biggest stories around.' + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/tg-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Game Guides', 'https://www.thegamer.com/feed/category/game-guides/'), + #AAA Games + ('AAA Games', 'https://www.thegamer.com/feed/aaa-games/'), + ('AAA Games Features', 'https://www.thegamer.com/feed/aaa-games/features/'), + ('AAA Games News', 'https://www.thegamer.com/feed/aaa-games/news/'), + ('AAA Games Lists', 'https://www.thegamer.com/feed/aaa-games/lists/'), + #Live-Service Games + ('Live-Service Games', 'https://www.thegamer.com/feed/live-service-games/'), + ('Live-Service Games Features', 'https://www.thegamer.com/feed/live-service-games/features/'), + ('Live-Service Games News', 'https://www.thegamer.com/feed/live-service-games/news/'), + ('Live-Service Games Lists', 'https://www.thegamer.com/feed/live-service-games/lists/'), + #Indie Games + ('Indie Games', 'https://www.thegamer.com/feed/indie-games/'), + ('Indie Games Features', 'https://www.thegamer.com/feed/indie-games/features/'), + ('Indie Games News', 'https://www.thegamer.com/feed/indie-games/news/'), + ('Indie Games Lists', 'https://www.thegamer.com/feed/indie-games/lists/'), + #Streaming + ('Streaming', 'https://www.thegamer.com/feed/streaming/'), + ('Streaming Features', 'https://www.thegamer.com/feed/streaming/features/'), + ('Streaming News', 'https://www.thegamer.com/feed/streaming/news/'), + #Movies & Shows + ('Movies & Shows', 'https://www.thegamer.com/feed/movies-tv-anime/'), + ('Movies & Shows Features', 'https://www.thegamer.com/feed/movies-tv-anime/features/'), + ('Movies & Shows News', 'https://www.thegamer.com/feed/movies-tv-anime/news/'), + + ('Game News', 'https://www.thegamer.com/feed/category/game-news/'), + ('The Gamer Originals', 'https://www.thegamer.com/feed/category/tg-originals/'), + ('The Gamer Lists', 'https://www.thegamer.com/feed/category/lists/'), + ('Explainers', 'https://www.thegamer.com/feed/category/explainer/'), + ('Reviews & Previews', 'https://www.thegamer.com/feed/reviews-previews/'), + ('Tabletop', 'https://www.thegamer.com/feed/category/tabletop/'), + ] diff --git a/recipes/the_richest.recipe b/recipes/the_richest.recipe new file mode 100644 index 0000000000..cca826a7d8 --- /dev/null +++ b/recipes/the_richest.recipe @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718381444(BasicNewsRecipe): + title = 'The Richest' + language = 'en' + __author__ = 'Spicy Poison' + description = ('The Richest is one of the Internet’s longest-running celebrity net worth resources' + ' - growing into one of the most informative (and entertaining) websites in the world.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/tr-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('The Rich & Powerful', 'https://www.therichest.com/feed/category/rich-powerful/'), + ('Luxury Lifestyle', 'https://www.therichest.com/feed/category/luxury/'), + ('Luxury Architecture', 'https://www.therichest.com/feed/category/luxury-architecture/'), + ('Business', 'https://www.therichest.com/feed/category/business/'), + ] diff --git a/recipes/the_sportster.recipe b/recipes/the_sportster.recipe new file mode 100644 index 0000000000..3b8574dad3 --- /dev/null +++ b/recipes/the_sportster.recipe @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718381004(BasicNewsRecipe): + title = 'The Sportster' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'The Sportster has delivered the latest breaking news from across WWE, AEW' + ' and more wrestling promotions. In addition, their long form publications delivered' + ' accurate statistical insights, thought-provoking opinion pieces and historical retrospectives on the biggest stories from wrestling’s past.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/ts-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #WWE + ('World Wrestling Entertainment', 'https://www.thesportster.com/feed/category/wwe/'), + ('WWE News', 'https://www.thesportster.com/feed/category/news/'), + ('WWE Lists', 'https://www.thesportster.com/feed/category/wrestling/'), + ('WWE Real American Wrestling', 'https://www.thesportster.com/feed/category/wwe-raw/'), + ('WWE SmackDown', 'https://www.thesportster.com/feed/category/wwe-smackdown/'), + ('WWE NXT', 'https://www.thesportster.com/feed/category/wwe-nxt/'), + #AEW + ('All Elite Wrestling', 'https://www.thesportster.com/feed/category/aew/'), + ('AEW News', 'https://www.thesportster.com/feed/category/news/'), + ('AEW Lists', 'https://www.thesportster.com/feed/category/wrestling/'), + + ('World Championship Wrestling', 'https://www.thesportster.com/feed/tag/wcw/'), + ('Mixed Martial Arts', 'https://www.thesportster.com/feed/category/mma/'), + ('Boxing', 'https://www.thesportster.com/feed/category/boxing/'), + ('National Football League', 'https://www.thesportster.com/feed/category/football/'), + ('National Basketball Association', 'https://www.thesportster.com/feed/category/basketball/'), + ] diff --git a/recipes/the_things.recipe b/recipes/the_things.recipe new file mode 100644 index 0000000000..7798ccd2e1 --- /dev/null +++ b/recipes/the_things.recipe @@ -0,0 +1,36 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718105400(BasicNewsRecipe): + title = 'The Things' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'At The Things they’re all about diving deep into the lives of celebrities and discovering' + ' who they really are behind the scenes. When the cameras stop rolling and the costumes come off,' + ' who are these Hollywood celebrities, really?') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/th-logo-full-colored-light.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #Celebrity + ('Celebrity', 'https://www.thethings.com/feed/category/celebrity/'), + ('Celebrity News', 'https://www.thethings.com/feed/category/celebrity-news/'), + + ('TV Shows', 'https://www.thethings.com/feed/category/tv-shows/'), + ('Reality TV', 'https://www.thethings.com/feed/category/reality-tv/'), + ('Movies', 'https://www.thethings.com/feed/category/movies/'), + ('Fashion', 'https://www.thethings.com/feed/category/fashion/'), + ('Interviews', 'https://www.thethings.com/feed/category/interviews/'), + ('Music', 'https://www.thethings.com/feed/tag/music/'), + ] diff --git a/recipes/the_travel.recipe b/recipes/the_travel.recipe new file mode 100644 index 0000000000..b7b814d1c4 --- /dev/null +++ b/recipes/the_travel.recipe @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718370494(BasicNewsRecipe): + title = 'The Travel' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'TheTravel covers all angles of tourism and bucket list destinations, answering every how,' + ' what, why, when, and where. Their goal has always been to create a publication that caters' + ' to the needs of readers, as well as inspiring wanderlust for those seeking the itineraries of their dreams.' + ' Throughout every travel season, TheTravel is there - bringing trending destinations, underrated spots, hidden gems,' + ' and the most beautiful landscapes to the top of your feed.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/tv-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + ('Travel Guides', 'https://www.thetravel.com/feed/category/travel-guides/'), + ('Travel', 'https://www.thetravel.com/feed/category/travel/'), + ('Food', 'https://www.thetravel.com/feed/category/food/'), + ('Destinations', 'https://www.thetravel.com/feed/category/destinations/'), + ('Travel Hacks', 'https://www.thetravel.com/feed/category/travel-hacks/'), + ('Lifestyle', 'https://www.thetravel.com/feed/category/lifestyle/'), + ] diff --git a/recipes/top_speed.recipe b/recipes/top_speed.recipe new file mode 100644 index 0000000000..eecc208219 --- /dev/null +++ b/recipes/top_speed.recipe @@ -0,0 +1,61 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718128185(BasicNewsRecipe): + title = 'Top Speed' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'TopSpeed has become the ultimate destination for both enthusiasts and consumers looking' + ' to explore the latest breakthroughs in gas-powered cars, electric vehicles, and hydrogen technology.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/tps-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #News feeds + ('Car News', 'https://www.topspeed.com/feed/category/car-news/'), + ('Motorcycle News', 'https://www.topspeed.com/feed/category/motorcycle-news/'), + #Guides & Reviews feeds + ('Car Reviews', 'https://www.topspeed.com/feed/category/car-reviews/'), + ('Vehicle Comparisons', 'https://www.topspeed.com/feed/category/vehicle-comparisons/'), + ('Car Guides', 'https://www.topspeed.com/feed/category/car-guides/'), + ('Motorcycle Guides', 'https://www.topspeed.com/feed/category/motorcycle-guides/'), + ('Motorcycle Gear', 'https://www.topspeed.com/feed/category/motorcycle-gear/'), + + ('Cars', 'https://www.topspeed.com/feed/category/cars/'), + ('Supercars', 'https://www.topspeed.com/feed/category/supercars/'), + ('Sports Cars', 'https://www.topspeed.com/feed/category/sports-cars/'), + ('Electric Cars', 'https://www.topspeed.com/feed/category/electric-cars/'), + ('Muscle Cars', 'https://www.topspeed.com/feed/category/muscle-cars/'), + ('Luxury Cars', 'https://www.topspeed.com/feed/category/luxury-cars/'), + ('Classic Cars', 'https://www.topspeed.com/feed/category/classic-cars/'), + ('Pickups & SUVs', 'https://www.topspeed.com/feed/category/pickups-suvs/'), + ('Motorcycles', 'https://www.topspeed.com/feed/category/motorcycles/'), + ('Fast Motorcycles', 'https://www.topspeed.com/feed/category/fast-motorcycles/'), + ('Custom Motorcycles', 'https://www.topspeed.com/feed/category/custom-motorcycles/'), + ('Cruiser Motorcycles', 'https://www.topspeed.com/feed/category/cruiser-motorcycles/'), + ('Touring Motorcycles', 'https://www.topspeed.com/feed/category/touring-motorcycles/'), + ('Electric Motorcycles', 'https://www.topspeed.com/feed/category/electric-motorcycles/'), + ('Naked Bikes', 'https://www.topspeed.com/feed/category/naked-bikes/'), + ('Dual Sport & Dirt Bikes', 'https://www.topspeed.com/feed/category/dual-sport-and-dirt-bikes/'), + ('Sport Bikes', 'https://www.topspeed.com/feed/category/sport-bikes/'), + ('Adventure Bikes', 'https://www.topspeed.com/feed/category/adventure-bikes/'), + ('Car TV', 'https://www.topspeed.com/feed/category/car-tv/'), + ('Car Collections', 'https://www.topspeed.com/feed/category/car-collections/'), + ('Custom Cars', 'https://www.topspeed.com/feed/category/custom-cars/'), + ('JDM', 'https://www.topspeed.com/feed/category/jdm/'), + ('Off-Roading', 'https://www.topspeed.com/feed/category/off-roading/'), + ('Car Renders', 'https://www.topspeed.com/feed/category/car-renders/'), + ('Exclusives', 'https://www.topspeed.com/feed/category/exclusives/'), + ('Top Speed Awards', 'https://www.topspeed.com/feed/category/topspeed-awards/'), + ] diff --git a/recipes/xda.recipe b/recipes/xda.recipe new file mode 100644 index 0000000000..1a6ba8445e --- /dev/null +++ b/recipes/xda.recipe @@ -0,0 +1,54 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +from calibre.web.feeds.news import BasicNewsRecipe + + +class AdvancedUserRecipe1718385916(BasicNewsRecipe): + title = 'XDA' + language = 'en' + __author__ = 'Spicy Poison' + description = ( + 'XDA cover all aspects of computing, including desktops, laptops, PC components,' + ' gaming handhelds, peripherals, emerging technologies like AI/VR, and the software that powers it all.') + publisher = 'Valnet Publishing Group' + oldest_article = 7 + max_articles_per_feed = 50 + no_stylesheets = True + use_embedded_content = False + ignore_duplicate_articles = {'title', 'url'} + encoding = 'utf-8' + masthead_url = 'https://www.valnetinc.com/images/brand/xda-logo-full-colored-dark.svg' + remove_empty_feeds = True + auto_cleanup = True + + feeds = [ + #News & Deals + ('News', 'https://www.xda-developers.com/feed/news/'), + ('Computing News', 'https://www.xda-developers.com/feed/category/computing-news/'), + ('Today’s Deals', 'https://www.xda-developers.com/feed/deals/'), + #Reviews + ('Reviews', 'https://www.xda-developers.com/feed/reviews/'), + ('Laptop Reviews', 'https://www.xda-developers.com/feed/category/computing-reviews/'), + ('CPU Reviews', 'https://www.xda-developers.com/feed/cpu-reviews/'), + ('Graphics Card Reviews', 'https://www.xda-developers.com/feed/graphics-card-reviews/'), + ('SSD Reviews', 'https://www.xda-developers.com/feed/ssd-reviews/'), + ('Phone Reviews', 'https://www.xda-developers.com/feed/phone-reviews/'), + ('XDA’s Product Review Awards', 'https://www.xda-developers.com/feed/awards/'), + #Best Guides + ("Buyer's Guides", 'https://www.xda-developers.com/feed/buying-guides/'), + #Tutorials + ('Tutorials', 'https://www.xda-developers.com/feed/tutorials/'), + ('Windows Tutorials', 'https://www.xda-developers.com/feed/windows-tutorials/'), + ('MacOS Tutorials', 'https://www.xda-developers.com/feed/macos-tutorials/'), + ('Linux Tutorials', 'https://www.xda-developers.com/feed/linux-tutorials/'), + ('ChromeOS Tutorials', 'https://www.xda-developers.com/feed/chromeos-tutorials/'), + + ('Computing', 'https://www.xda-developers.com/feed/category/computing/'), + ('Acer', 'https://www.xda-developers.com/feed/tag/acer/'), + ('Apple Mac', 'https://www.xda-developers.com/feed/apple-mac/'), + ('Dell', 'https://www.xda-developers.com/feed/tag/dell/'), + ('HP', 'https://www.xda-developers.com/feed/tag/hp/'), + ('Lenovo', 'https://www.xda-developers.com/feed/tag/lenovo/'), + ('Microsoft', 'https://www.xda-developers.com/feed/tag/microsoft/'), + ('Razer', 'https://www.xda-developers.com/feed/tag/razer/'), + ]