From dc85f73de588e108c2dd40802e18f3c9cfa5ec42 Mon Sep 17 00:00:00 2001 From: Schimon Jehudah Date: Sun, 28 Jan 2024 11:17:31 +0000 Subject: [PATCH] Replace YAML by TOML --- slixfeed/action.py | 21 +- slixfeed/assets/commands.toml | 363 +++++++++++---------- slixfeed/assets/information.toml | 108 +++++++ slixfeed/assets/lists.toml | 388 +++++++++++++++++++++++ slixfeed/assets/lists.yaml | 509 ------------------------------ slixfeed/assets/proxies.toml | 523 +++++++++++++++++++++++++++++++ slixfeed/assets/proxies.yaml | 478 ---------------------------- slixfeed/assets/queries.toml | 235 ++++++++++++++ slixfeed/assets/queries.yaml | 235 -------------- slixfeed/config.py | 14 +- slixfeed/crawl.py | 4 +- slixfeed/url.py | 19 +- slixfeed/xmpp/process.py | 108 ++++--- 13 files changed, 1535 insertions(+), 1470 deletions(-) create mode 100644 slixfeed/assets/information.toml create mode 100644 slixfeed/assets/lists.toml delete mode 100644 slixfeed/assets/lists.yaml create mode 100644 slixfeed/assets/proxies.toml delete mode 100644 slixfeed/assets/proxies.yaml create mode 100644 slixfeed/assets/queries.toml delete mode 100644 slixfeed/assets/queries.yaml diff --git a/slixfeed/action.py b/slixfeed/action.py index f51e673..5cddd31 100644 --- a/slixfeed/action.py +++ b/slixfeed/action.py @@ -82,21 +82,22 @@ except: "Package readability was not found.\n" "Arc90 Lab algorithm is disabled.") -def commands(section=None, command=None): +def manual(filename, section=None, command=None): config_dir = config.get_default_config_directory() - with open(config_dir + "/commands.toml", mode="rb") as commands: + with open(config_dir + '/' + filename, mode="rb") as commands: cmds = tomllib.load(commands) if command and section: - command_name = '`', cmds[section][command], '`\n' - command_info = cmds[section][command + '_info'] - if isinstance(command_info, list): - command_info = '\n'.join(command_info) - cmd_list = [command_name, command_info] + try: + cmd_list = cmds[section][command] + except KeyError: + cmd_list = None elif section: - cmd_list = [] - for cmd in cmds[section]: - if not '_info' in cmd: + try: + cmd_list = [] + for cmd in cmds[section]: cmd_list.extend([cmd]) + except KeyError: + cmd_list = None else: cmd_list = [] for cmd in cmds: diff --git a/slixfeed/assets/commands.toml b/slixfeed/assets/commands.toml index c504637..d4eef47 100644 --- a/slixfeed/assets/commands.toml +++ b/slixfeed/assets/commands.toml @@ -1,211 +1,204 @@ [action] -url = "" -url_info = "Add to subscription list." -add = "add TITLE" -add_info = "Add to subscription list (without validity check)." -next = "next N" -next_info = "Send N next updates." +url = """ + +Add given to subscription list. +""" +add = """ +add +Add given <url> to subscription list (no feed validity check). Parameter <title> is optional. +""" +next = """ +next <number> +Send next <number> of updates. +""" [backup] -opml = "export opml" -opml_info = "Send an OPML file with feeds." -html = "backup news html" -html_info = "Send an HTML formatted file of your news items." -md = "backup news md" -md_info = "Send a Markdown file of your news items." -text = "backup news text" -text_info = "Send a Plain Text file of your news items." +opml = """ +export opml +Send an OPML file with feeds. +""" +html = """ +backup news html +Send an HTML formatted file of your news items. +""" +md = """ +backup news md +Send a Markdown file of your news items. +""" +text = """ +backup news text +Send a Plain Text file of your news items. +""" [custom] -new = "new" -new_info = "Send only new items of newly added feeds." -old = "old" -old_info = "Send all items of newly added feeds." +new = """ +new +Send only new items of newly added feeds. +""" +old = """ +old +Send all items of newly added feeds. +""" [document] -get = "get <id> <type>" -get_info = [ - "Send an article as file. Specify <id> and <type>.", - "Supported types are HTML, MD and PDF (default)." -] +get = """ +get <id> <type> +Send an article as file. Specify <id> and <type>. +Supported types are ePUB, HTML, MD and PDF (default). +""" [filter] -allow = "allow [+|-]" -allow_info = [ - "Keywords to allow", - "comma-separated keywords", - "'+' appends to, '-' removes from." -] -deny = "deny [+|-]" -deny_info = [ - "Keywords to block", - "comma-separated keywords", - "'+' appends to, '-' removes from." -] -clear_allow = "filter clear allow" -clear_allow_info = "Reset allow list." -clear_deny = "filter clear deny" -clear_deny_info = "Reset deny list." +allow = """ +allow [+|-] <keyword> +Keywords to allow +comma-separated keywords +'+' appends to, '-' removes from. +""" +deny = """ +deny [+|-] <keyword> +Keywords to block +comma-separated keywords +'+' appends to, '-' removes from. +""" +clear_allow = """ +filter clear allow +Reset allow list. +""" +clear_deny = """ +filter clear deny +Reset deny list. +""" [groupchat] -join = "join <muc>" -join_info = "Join specified groupchat." +join = """ +join <muc> +Join groupchat by given <muc>. +""" -[help] -commands = "commands" -commands_info = "Print list of commands." -help = "help" -help_info = "Print this help manual." -info = "info" -info_info = "Print information page." -support = "support" -support_info = "Join xmpp:slixfeed@chat.woodpeckersnest.space?join" - -[info] -about = [ -"Slixfeed aims to be an easy to use and fully-featured news", -"aggregator bot for XMPP. It provides a convenient access to Blogs,", -"Fediverse and News websites along with filtering functionality.", -"\n", -"Slixfeed is primarily designed for XMPP (aka Jabber).", -"Visit https://xmpp.org/software/ for more information.", -"\n", -"XMPP is the Extensible Messaging and Presence Protocol, a set", -"of open technologies for instant messaging, presence, multi-party", -"chat, voice and video calls, collaboration, lightweight", -"middleware, content syndication, and generalized routing of XML", -"data.", -"\n", -"Visit https://xmpp.org/about/ for more information on the XMPP", -"protocol.", -] -platforms = [ -"Supported prootcols are IRC, Matrix, Tox and XMPP.", -"For the best experience, we recommend you to use XMPP." -] -filetypes = [ -"Supported filetypes: Atom, JSON, RDF, RSS and XML." -] -protocols = [ -"Supported protocols: Dat, FTP, Gemini, Gopher, HTTP and IPFS." -] -authors = [ -"Laura Lapina", -"Schimon Zackary" -] -thanks = [ -# consultants and testers -"Alixander Court (Utah)", -"habnabit_ from #python on irc.libera.chat", -"imattau (atomtopubsub)", -"Jaussoin Timothée (Movim, France)", -"magicfelix", -"Simone \"roughnecks\" Canaletti (WoodpeckersNest.space, Italy)", -"Strix from loqi.im", -# gajim -"Denis Fomin (Gajim, Russia)", -"Emmanuel Gil Peyrot (Poezio, France)", -"Yann Leboulanger (Gajim, France)", -# intro -"Christian Dersch (SalixOS)", -"Cyrille Pontvieux (SalixOS, France)", -"Dimitris Tzemos (SalixOS, Greece)", -"George Vlahavas (SalixOS, Greece)", -"Pierrick Le Brun (SalixOS, France)", -"Raphael Groner (Fedora, Germany)", -"Thorsten Mühlfelder (SalixOS, Germany)", -# openfire -"Guus der Kinderen from IgniteRealtime.org (Openfire, Netherlands)", -# swift -"Kevin Smith from Isode (Swift, Wales# xmpp)", -"Remko Tronçon (Swift, Germany)", -# xmpp -"Florent Le Coz (Poezio, France)", -"Maxime Buquet (slixmpp, France)", -"Mathieu Pasquet (slixmpp, France)", -] -license = [ -"Slixfeed is free software; you can redistribute it and/or", -"modify it under the terms of the MIT License.", -"\n", -"Slixfeed is distributed in the hope that it will be useful,", -"but WITHOUT ANY WARRANTY; without even the implied warranty of", -"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the", -"MIT License for more details.", -] -note = [ -"You can run Slixfeed on your own computer, server, and", -"even on a Linux phone (i.e. Droidian, Kupfer, Mobian, NixOS,", -"postmarketOS). You can also use Termux.", -"\n", -"All you need is one of the above and an XMPP account to", -"connect Slixfeed to.", -] -resources = [ -"Slixfeed", -"https://gitgud.io/sjehuda/slixfeed", -"Slixmpp", -"https://slixmpp.readthedocs.io/", -"feedparser", -"https://pythonhosted.org/feedparser", -] +[manual] +help = """ +help +Print list of command types. +""" +command = """ +help key command +Print command usage and description. +""" +info = """ +info +Print information page. +""" +key = """ +help <key> +Print list of commands for selected command type. +""" +support = """ +support +Join xmpp:slixfeed@chat.woodpeckersnest.space?join +""" [mastership] -demaster = "demaster NICKNAME" -demaster_info = "Remove master privilege." -mastership = "mastership NICKNAME" -mastership_info = "Add master privilege." -ownership = "ownership NICKNAME" -ownership_info = "Set new owner." +demaster = """ +demaster <nick> +Remove master privilege from given <nick>. +""" +mastership = """ +mastership <nick> +Add master privilege to given <nick>. +""" +ownership = """ +ownership <nick> +Transfer ownership to given <nick>. +""" [message] -interval = "interval <num>" -interval_info = "Set interval update to every <num> minutes." -length = "length" -length_info = "Set maximum length of news item description. (0 for no limit)" -quantum = "quantum <num>" -quantum_info = "Set <num> amount of updates per interval." +interval = """ +interval <minutes> +Set interval update to every given <minutes>. +""" +length = """ +length +Set maximum length of news item description. (0 for no limit) +""" +quantum = """ +quantum <number> +Set amount of updates per interval by given <number>. +""" [modification] -remove = "remove <id>" -remove_info = "Remove feed of <id> from subscription list." -disable = "disable <id>" -disable_info = "Disable updates for feed of <id>." -enable = "enable <id>" -enable_info = "Enable updates for feed of <id>." -reset = "reset" -reset_info = "Mark all entries as read and remove all archived entries" -reset_url = "reset <url>" -reset_url_info = "Mark entries of <url> as read and remove all archived entries of <url>." -start = "start" -start_info = "Enable bot and send updates." -stop = "stop" -stop_info = "Disable bot and stop updates." +remove = """ +remove <id> +Remove feed of from subscription list by given <id>. +""" +disable = """ +disable <id> +Disable updates for feed of given <id>. +""" +enable = """ +enable <id> +Enable updates for feed of given <id>. +""" +reset = """ +reset +Mark all entries as read and remove all archived entries +""" +reset_url = """ +reset <url> +Mark entries of given <url> as read and remove all its archived entries. +""" +start = """ +start +Enable bot and send updates. +""" +stop = """ +stop +Disable bot and stop updates. +""" [preview] -read = "read <url>" -read_info = "Display most recent 20 titles of given <url>." -read_num = "read <url> <n>" -read_num_info = "Display specified entry number from given <url>." +read = """ +read <url> +Display most recent 20 titles of given <url>. +""" +read_num = """ +read <url> <index> +Display specified entry number from given <url> by given <index>. +""" [search] -feeds = "feeds" -feeds_info = "List all subscriptions." -feeds_keyword = "feeds <text>" -feeds_keyword_info = "Search subscriptions by given <text>." -search = "search <text>" -search_info = "Search news items by given <text>." -recent = "recent <num>" -recent_info = "List recent <num> news items (up to 50 items)." +feeds = """ +feeds +List all subscriptions. +""" +feeds_keyword = """ +feeds <text> +Search subscriptions by given <text>. +""" +search = """ +search <text> +Search news items by given <text>. +""" +recent = """ +recent <number> +List recent <number> news items (up to 50 items). +""" [statistics] -analyses = "analyses" -analyses_info = "Show report and statistics of feeds." -obsolete = "obsolete" -obsolete_info = "List feeds that are not available." -unread = "unread" -unread_info = "Print number of unread news items." +analyses = """ +analyses +Show report and statistics of feeds. +""" +obsolete = """ +obsolete +List feeds that are not available. +""" +unread = """ +unread +Print number of unread news items. +""" [token] -activate = "activate CODE" -activate_info = "Activate given token to command bot." +activate = """ +activate <code> +Activate given token to command bot by given <code>. +""" diff --git a/slixfeed/assets/information.toml b/slixfeed/assets/information.toml new file mode 100644 index 0000000..630d00c --- /dev/null +++ b/slixfeed/assets/information.toml @@ -0,0 +1,108 @@ +about = """ +Slixfeed aims to be an easy to use and fully-featured news \ +aggregator bot for XMPP. It provides a convenient access to Blogs, \ +Fediverse and News websites along with filtering functionality. + +Slixfeed is primarily designed for XMPP (aka Jabber). \ +Visit https://xmpp.org/software/ for more information. +""" + +authors = """ +Laura Lapina + Co-Author, Instructor and Mentor. +Schimon Zackary + Author. +""" + +filetypes = """ +Supported filetypes: Atom, JSON, RDF, RSS and XML. +""" + +license = """ +Slixfeed is free software; you can redistribute it and/or \ +modify it under the terms of the MIT License. + +Slixfeed is distributed in the hope that it will be useful, \ +but WITHOUT ANY WARRANTY; without even the implied warranty of \ +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \ +MIT License for more details. +""" + +note = """ +You can run Slixfeed as a client on your own computer, server, \ +and even on a Linux phone (i.e. Droidian, Kupfer, Mobian, NixOS, \ +postmarketOS). You can even use Termux. + +All you need is one of the above and an XMPP account to \ +connect Slixfeed to. +""" + +operators = """ +No operator was specified for this instance. +""" + +platforms = """ +Supported platforms: XMPP +Platforms to be added in future: Briar, Email, IRC, Matrix, MQTT, Tox. +For the best experience, we recommend to use XMPP. +""" + +privacy = """ +All your data belongs to us! +""" + +protocols = """ +Supported protocols: HTTP +Protocols to be added in future: Dat, FTP, Gemini, Gopher, IPFS. +""" +# Supported protocols: Dat, FTP, Gemini, Gopher, HTTP and IPFS. + +resources = """ +Slixfeed +https://gitgud.io/sjehuda/slixfeed +Slixmpp +https://slixmpp.readthedocs.io/ +feedparser +https://pythonhosted.org/feedparser +""" + +terms = """ +You may not abuse this service. +""" + +thanks = """ +Alixander Court (Utah), \ +Christian Dersch (SalixOS), \ +Cyrille Pontvieux (SalixOS, France), \ +Denis Fomin (Gajim, Russia), \ +Dimitris Tzemos (SalixOS, Greece), \ +Emmanuel Gil Peyrot (Poezio, France), \ +Florent Le Coz (Poezio, France), \ +George Vlahavas (SalixOS, Greece), \ +Guus der Kinderen from IgniteRealtime.org (Openfire, Netherlands), \ +habnabit_ from #python on irc.libera.chat, \ +imattau (atomtopubsub), \ +Jaussoin Timothée (Movim, France), \ +Kevin Smith from Isode (Swift, Wales), \ +magicfelix, \ +Mathieu Pasquet (slixmpp, France), \ +Maxime Buquet (slixmpp, France), \ +Pierrick Le Brun (SalixOS, France), \ +Raphael Groner (Fedora, Germany), \ +Remko Tronçon (Swift, Germany), \ +Simone "roughnecks" Canaletti (woodpeckersnest.space, Italy), \ +Strix from Loqi, \ +Thorsten Mühlfelder (SalixOS, Germany), \ +Yann Leboulanger (Gajim, France). +""" + +xmpp = """ +XMPP is the Extensible Messaging and Presence Protocol, a set \ +of open technologies for instant messaging, presence, multi-party \ +chat, voice and video calls, collaboration, lightweight \ +middleware, content syndication, and generalized routing of XML \ +data. + +Visit https://xmpp.org/about/ for more information on the XMPP \ +protocol. +""" diff --git a/slixfeed/assets/lists.toml b/slixfeed/assets/lists.toml new file mode 100644 index 0000000..ca78afe --- /dev/null +++ b/slixfeed/assets/lists.toml @@ -0,0 +1,388 @@ +# On occasion when given web page has no auto-discovery setup, the following +# list is engaged into action to scan for possible paths (i.e. pathname) at +# which web feed might be discovered. + +pathnames = [ +".atom", +".json", +".rss", +".xml", +# wordpress +"/?feed=atom", +"/?feed=rdf", +"/?feed=rss", +"/?feed=xml", +# phpbb +"/?format=atom", +"/?format=rdf", +"/?format=rss", +"/?format=xml", +"/app.php/feed", +"/atom", +"/atom.php", +"/atom.xml", +"/blog/feed/", +"/content-feeds/", +"/external.php?type=RSS2", +"/en/feed/", +# common practice +"/feed", +"/feed.atom", +"/feed.json", +"/feed.php", +"/feed.rdf", +"/feed.rss", +"/feed.xml", +"/feed/atom/", +"/feeds/news_feed", +"/feeds/posts/default", +"/feeds/posts/default?alt=atom", +"/feeds/posts/default?alt=rss", +"/feeds/rss/news.xml.php", +"/forum_rss.php", +"/index.atom", +"/index.php/feed", +# simple machine forum +"/index.php?type=atom;action=.xml", +"/index.php?type=rss;action=.xml", +"/index.rss", +"/jekyll/feed.xml", +# discourse +"/latest.rss", +"/news", +"/news.xml", +"/news.xml.php", +"/news/feed", +# discourse +"/posts.rss", +"/rdf", +"/rdf.php", +"/rdf.xml", +"/rss", +"/rss.json", +"/rss.php", +"/rss.xml", +# mybb +"/syndication.php?type=atom1.0", +"/syndication.php?type=rss2.0", +# statusnet +"/timeline.rss", +# peertube +"/videos.atom", +"/videos.json", +"/videos.xml", +"/xml/feed.atom", +"/xml/feed.rdf", +"/xml/feed.rss", +] + +# Filters can be used to protect or depress your life. +# +# Before you continue reading, please realize that the news has to be treated +# as a very annoying and bad salesperson who wants to guile and trick you into +# buying something that you do not need at all. +# +# In other words: Sometimes, you just have to hang up the phone. +# +# "I always tell people: News is the most highly developed form of fiction." +# "The most difficult." -- Donald Pleasence as J.G. in "The News-Benders 1968". +# magnet:?xt=urn:btih:75af6576572a08a62a7a614b1fd399712fcf1e58&dn=newsbenders +# +# News is no longer an information service, if it ever was. News in most of the +# world is a mean of fear. +# +# The government regulated news agencies, private and public, are not in your +# favour. You must filter in order to avoid from subverting your mind. +# +# Although it is recognized that the Palestinian land confiscation issue is +# indeed a problem that affects us all (i.e. confiscation of land without +# punishing). +# +# I have worked with far right wing Israeli and Zionist news jurnalists and +# editors for over a decade, and it occurred to me, time and again, that these +# entities have published factual and fictional criticism against themselves +# (the Israeli side), in order to distract the Israeli citizenry from removing +# the government because the Israelis wanted to better their life by improving +# the life of the average citizen. +# +# Most of my Israeli brothers and sisters are either poor or in debt, and the +# Israeli government uses the conflict against Palestinians and Israelis as one. +# +# By observing our problems instead of your own; you are, in fact, harming us +# and yourself. +# +# I have added keywords to deny entries that are related to the Palestinians, +# because most of the articles about the subject are meant to distract you too +# from issues that are much more closer and important to you. +# +# If the Americans and the Europeans will concentrate on Israel or Palestine, +# never mind which side they support, instead of protecting their own freedom +# of speech and their feedom of keep and bear arms, then tomorrow, without +# their freedoms, they would not even be able to express any opinion on any +# other matter whatsoever. +# +# If you want to harm yourself, your family and friends and the Chinese, +# Israelis, Palestinians, Tibetans, then you are free to remove the filters +# and concentrate on issues that do not really matter. +# +# But if you really care for Chinese, Israelis, Palestinians, Tibetans, then +# you must concentrate your efforts on *your* local area, care for *your* own +# neighbours and *your* own race, for uncompromising freedom and liberty for +# all, because, otherwise, non of us might have any. +# +# It is "all of us for all of us" or we are on our own. And it has to start +# locally. There is no other way. +# +# You are advised to look into the keywords and share yours with us, so people +# would get the best out of this news application. + +# Entries with the following keywords will not be filtered +filter-allow = [ +"akkoma", +"censorship", +"earthing", +"firefish", +"friendica", +"free speech", +"funkwhale", +"gaddafi", +"gadhafi", +"hitler", +"hubzilla", +"jabber", +"kbin", +"marijuana", +"mastodon", +"mbin", +"misskey", +"movim", +"nostr", +"ossad", +"peertube", +"pixelfed", +"plebbit", +"pleroma", +"qaddafi", +"qadhafi", +"risc", +"sadam", +"saddam", +"searx", +"searxng", +"soapbox", +"war crim", +"ware", +"xmpp", +"yacy", +] + +# Entries with the following keywords will be filtered +filter-deny = [ +# brands +# Almost every time you see a brand name in title or content, it is because +# someone, usually a marketing agency or a venture capital firm, has paid for +# it to be mentioned, not because an editor had found it interesting. +"airbnb", +"android", +"at&t", +"bing", +"booking", +"cloudflare", +"digg", +"discord", +"dropbox", +"facebook", +"github", +"gitlab", +"gmail", +"google", +"gsoc", +"instagram", +"ipad", +"iphone", +"ipod", +"microsoft", +"mozilla", +"myspace", +"netflix", +"office 365", +"openai", +"pinterest", +"pokemon", +"reddit", +"robinhood", +"snapchat", +"spotify", +"tiktok", +"tumblr", +"twitter", +"verizon", +"walmart", +"waze", +"whatsapp", +"wii", +"wikimedia", +"wikipedia", +"wix", +"xbox", +"xitter", +"yahoo", +"youtube", +# consumerism +"black friday", +"coupon", +"gambl", +# death +"apocalyp", +"corona", +"covid", +"crime", +"criminal", +"dead", +"death", +"die", +"disaster", +"doomsday", +"murder", +"vaccin", +"vax", +"war", +# degeneracy +"gay", +"gender fluid", +"gender identity", +"homosex", +"lesbian", +"lgbt", +"nude", +"nudity", +"onlyfans", +"porn", +"pr0n", +"prostitut", +"queen", +"queer", +"tranny", +"trans", +"whor", +"xham", +"xvid", +# distraction of the moment +"clint", +"el aviv", +"el-aviv", +"en shapi", +"gaza", +"gazza", +"hamas", +"hammas", +"harar", +"harrar", +"hillar", +"holocaust", +"idf", +"israel", +"jerus", +"lex jon", +"lon mus", +"musk", +"netanya", +"nfowar", +"oxnew", +"palestin", +"shapir", +"trump", +"west bank", +"zucker", +# fiction +"astronaut", +"climate", +"meteor", +"nasa", +"space", +# names +"boomer", +"gen z", +# substances +"🚬", +"alcohol", +"cigar", +"drug", +] + +# The following index was generated from machine learning scan of political +# and scientific forums gathered within a duration of 6 hours; this index is +# a set of value(s) (phrases and words) to be replaced by a value (key). +# +# While non reflects any of the opinions of the author of this program, you +# might find it amusing, entertaining, essential, important or all of the +# above or perhaps just a joke of the book of "1984" or the film "They Live" +# to experience what it might feel like. +# +# While this set of filters is intended merely for example purposes only to +# realize the power one might have when is given the liberty to control +# contents received, this machine-learning generated set is surprisingly +# effective and efficient. +# +# The filtering ability was primarily meant to solve an issue which my +# orthodox rabbi has asked me to solve for him. That set, which he and his +# community use, is not included here. + +# Replace words and phrases +[filter-replace] +"Baby Death" = [ "abortion",] # Fetus Death +"Chat Service Platform" = [ "discord", "whatsapp",] +# We are all using 4chan; yet you have got to wonder how is it still +# allowed online in a centralized DNS system. +# If 4chan was served only in I2P, IPFS, Nostr, Plebbit or Yggdrasil +# then I would not think so. +"CIA-backed riot group" = [ "4chan", "al qaeda", "al-qaeda", "antifa", "black lives matter", "da'ish", "daish", "isil", "isis", "ku klux klan",] +"CIA-controlled publishing agency" = [ "abc", "abc7", "abc13", "cbn", "cnbc", "fox news", "foxnews", "msn news", "sky news", "skynews",] +"Email Service Provider" = [ "gmail", "ymail",] +"GPS Service Provider" = [ "waze",] +"Hospitality Directory" = [ "airbnb", "booking",] +"dystopian" = [ "orwellian",] +"Earth is Horizontal" = [ "earth is flat", "flatearth", "flat earth",] +"electro magnetic death antenna" = [ "5g",] +"electro magnetic water shaker antenna" = [ "2.4ghz",] +"electro magnetic air shaker antenna" = [ "5ghz", "5.0ghz",] +"Federal Government of USA" = [ "biden administration", "biden admin", "biden government", "bush administration", "bush admin", "bush government", "obama administration", "obama admin", "obama government", "trump administration", "trump admin", "trump government",] +"fictional weapon" = [ "atom bomb", "atomic bomb", "nukes", "nuclear bomb",] +"file hosting service" = [ "dropbox", "rapidshare",] +"firmament" = [ "atmosphere", "ozone",] +# People who have been made to believe that earth, moon and sun are +# flying rocks traveling in an impossible vacuum of nothingness. +"globe believer" = [ "globtard",] +"Government Weather Change Scam" = [ "climate change", "climate summit", "global warming",] +"hazardous" = [ "gmo",] +"Human Trafficking Group" = [ "prostitution ring",] +"Human Trafficking Industry" = [ "porn industry", "pornographic industry", "pornography industry", "sex industry",] +"impossible war" = [ "atomic war", "nuclear war",] +# People who observe that earth is plane, and is enclosed by a firmament +# that separates earth from water, not space. +"Horizontal Earth Activist" = [ "flatearther", "flat earther", "globe sceptic",] +"internationalism" = [ "globalism",] +"internationalist" = [ "globalist",] +# Better options might be Freenet, Mixnet +"Meshnet" = [ "darknet", "dark net",] +"MI5-controlled publishing agency" = [ "bbc news", "the guardian",] +"Misleading Digital Coin" = [ "oecd", "shit coin",] +"NSDAP" = [ "nazi",] +"online content publishing platform" = [ "facebook", "github", "gitlab", "instagram", "myspace", "pinterest", "tumblr", "twitter", "wix", "xitter",] # mastodon wordpress +"petroleum" = [ "fossil fuel", "fossil oil",] +"plane" = [ "planet",] +"poison" = [ "flouride", "fluoride",] +"poisoned" = [ "flouridated", "fluoridated",] +"poisoning" = [ "flouridation", "fluoridation",] +"Scam Currency Trading" = [ "forex",] +"sponsor" = [ "money donor", "financier",] +"Mobile OS" = [ "android", "ipad", "iphone", "ipod",] +"Music Streaming Platform" = [ "spotify",] +"Search Provider" = [ "bing", "google", "yahoo",] +"Social Media Platform" = [ "digg", "facebook", "github", "instagram", "myspace", "reddit", "snapchat", "pinterest", "tiktok", "tumblr", "twitter",] +"Software Comopany" = [ "apple computers", "apple inc", "microsoft",] +"Telecom Company" = [ "at&t", "verizon",] +"Video Streaming Platform" = [ "hulu", "netflix", "youtube",] +"water above the firmament" = [ "outerspace", "outer space",] +"World" = [ "globe",] +"Worldwide" = [ "around the globe", "global", "globally",] diff --git a/slixfeed/assets/lists.yaml b/slixfeed/assets/lists.yaml deleted file mode 100644 index bfeb6da..0000000 --- a/slixfeed/assets/lists.yaml +++ /dev/null @@ -1,509 +0,0 @@ -# On occasion when given web page has no auto-discovery setup, the following -# list is engaged into action to scan for possible paths (i.e. pathname) at -# which web feed might be discovered. - -pathnames: - - .atom -# - .json - - .rss - - .xml - # wordpress - - /?feed=atom - - /?feed=rdf - - /?feed=rss - - /?feed=xml - # phpbb - - /?format=atom - - /?format=rdf - - /?format=rss - - /?format=xml - - /app.php/feed - - /atom - - /atom.php - - /atom.xml - - /blog/feed/ - - /content-feeds/ - - /external.php?type=RSS2 - - /en/feed/ - # good practice - - /feed - - /feed.atom -# - /feed.json - - /feed.php - - /feed.rdf - - /feed.rss - - /feed.xml - - /feed/atom/ - - /feeds/news_feed - - /feeds/posts/default - - /feeds/posts/default?alt=atom - - /feeds/posts/default?alt=rss - - /feeds/rss/news.xml.php - - /forum_rss.php - - /index.atom - - /index.php/feed - # simple machine forum - - /index.php?type=atom;action=.xml - - /index.php?type=rss;action=.xml - - /index.rss - - /jekyll/feed.xml - # discourse - - /latest.rss - - /news - - /news.xml - - /news.xml.php - - /news/feed - # discourse - - /posts.rss - - /rdf - - /rdf.php - - /rdf.xml - - /rss -# - /rss.json - - /rss.php - - /rss.xml - # mybb - - /syndication.php?type=atom1.0 - - /syndication.php?type=rss2.0 - # statusnet - - /timeline.rss - # peertube - - /videos.atom -# - /videos.json - - /videos.xml - - /xml/feed.atom - - /xml/feed.rdf - - /xml/feed.rss - -# Filters can be used to protect or depress your life. -# -# Before you continue reading, please realize that the news has to be treated -# as a very annoying and bad salesperson who wants to guile and trick you into -# buying something that you do not need at all. -# -# In other words: Sometimes, you just have to hang up the phone. -# -# "I always tell people: News is the most highly developed form of fiction." -# "The most difficult." -- Donald Pleasence as J.G. in "The News-Benders 1968". -# magnet:?xt=urn:btih:75af6576572a08a62a7a614b1fd399712fcf1e58&dn=newsbenders -# -# News is no longer an information service, if it ever was. News in most of the -# world is a mean of fear. -# -# The government regulated news agencies, private and public, are not in your -# favour. You must filter in order to avoid from subverting your mind. -# -# Although it is recognized that the Palestinian land confiscation issue is -# indeed a problem that affects us all (i.e. confiscation of land without -# punishing). -# -# I have worked with far right wing Israeli and Zionist news jurnalists and -# editors for over a decade, and it occurred to me, time and again, that these -# entities have published factual and fictional criticism against themselves -# (the Israeli side), in order to distract the Israeli citizenry from removing -# the government because the Israelis wanted to better their life by improving -# the life of the average citizen. -# -# Most of my Israeli brothers and sisters are either poor or in debt, and the -# Israeli government uses the conflict against Palestinians and Israelis as one. -# -# By observing our problems instead of your own; you are, in fact, harming us -# and yourself. -# -# I have added keywords to deny entries that are related to the Palestinians, -# because most of the articles about the subject are meant to distract you too -# from issues that are much more closer and important to you. -# -# If the Americans and the Europeans will concentrate on Israel or Palestine, -# never mind which side they support, instead of protecting their own freedom -# of speech and their feedom of keep and bear arms, then tomorrow, without -# their freedoms, they would not even be able to express any opinion on any -# other matter whatsoever. -# -# If you want to harm yourself, your family and friends and the Chinese, -# Israelis, Palestinians, Tibetans, then you are free to remove the filters -# and concentrate on issues that do not really matter. -# -# But if you really care for Chinese, Israelis, Palestinians, Tibetans, then -# you must concentrate your efforts on *your* local area, care for *your* own -# neighbours and *your* own race, for uncompromising freedom and liberty for -# all, because, otherwise, non of us might have any. -# -# It is "all of us for all of us" or we are on our own. And it has to start -# locally. There is no other way. -# -# You are advised to look into the keywords and share yours with us, so people -# would get the best out of this news application. - -# Entries with the following keywords will not be filtered -filter-allow: - - akkoma - - censorship - - earthing - - firefish - - friendica - - free speech - - funkwhale - - gaddafi - - gadhafi - - hitler - - hubzilla - - jabber - - kbin - - marijuana - - mastodon - - mbin - - misskey - - movim - - nostr - - ossad - - peertube - - pixelfed - - plebbit - - pleroma - - qaddafi - - qadhafi - - risc - - sadam - - saddam - - soapbox - - war crim - - ware - - xmpp - -# Entries with the following keywords will be filtered -filter-deny: - # brands - # Almost every time you see a brand name in title or content, it is because - # someone, usually a marketing agency or a venture capital firm, has paid for - # it to be mentioned, not because an editor had found it interesting. - - airbnb - - android - - at&t - - bing - - booking - - cloudflare - - digg - - discord - - facebook - - github - - gitlab - - gmail - - google - - gsoc - - instagram - - ipad - - iphone - - ipod - - microsoft - - mozilla - - myspace - - netflix - - openai - - pinterest - - reddit - - robinhood - - snapchat - - spotify - - tiktok - - tumblr - - twitter - - verizon - - waze - - whatsapp - - wikimedia - - wikipedia - - wix - - xitter - - yahoo - - youtube - # consumerism - - black friday - - coupon - - gambl - # death - - apocalyp - - corona - - covid - - crime - - criminal - - dead - - death - - die - - disaster - - doomsday - - murder - - vaccine - - vax - - war - # degeneracy - - gay - - gender fluid - - gender identity - - homosex - - lesbian - - lgbt - - nude - - nudity - - onlyfans - - porn - - pr0n - - prostitut - - queen - - queer - - tranny - - trans # transexual transgender transsexual - - whor - - xham - - xvid - # distraction of the moment - - clint - - el aviv - - el-aviv - - en shapi - - gaza - - gazza - - hamas - - hammas - - harar - - harrar - - hillar - - holocaust - - idf - - israel - - jerus - - lex jon - - lon mus - - musk - - netanya - - nfowar - - oxnew - - palestin - - shapir - - trump - - west bank - - zucker - # fiction - - astronaut - - climate - - meteor - - nasa - - space - # names - - boomer - - gen z - # substances - - 🚬 - - alcohol - - cigar - - drug - -# The following index was generated from machine learning scan of political -# and scientific forums gathered within a duration of 6 hours; this index is -# a set of value(s) (phrases and words) to be replaced by a value (key). -# -# While non reflects any of the opinions of the author of this program, you -# might find it amusing, entertaining, essential, important or all of the -# above or perhaps just a joke of the book of "1984" or the film "They Live" -# to experience what it might feel like. -# -# While this set of filters is intended merely for example purposes only to -# realize the power one might have when is given the liberty to control -# contents received, this machine-learning generated set is surprisingly -# effective and efficient. -# -# The filtering ability was primarily meant to solve an issue which my -# orthodox rabbi has asked me to solve for him. That set, which he and his -# community use, is not included here. - -# Replace words and phrases -filter-replace: - # Fetus Death - "Baby Death": - - abortion - "CIA-backed riot group": - # We are all using 4chan; yet you have got to wonder how is it still - # allowed online in a centralized DNS system. - # If 4chan was served only in I2P, IPFS, Nostr, Plebbit or Yggdrasil - # then I would not think so. - - 4chan - - al qaeda - - al-qaeda - - antifa - - black lives matter - - da'ish - - daish - - isil - - isis - - ku klux klan - "CIA-controlled publishing agency": - - abc - - abc7 - - abc13 - - cbn - - cnbc - - fox news - - foxnews - - msn news - - sky news - - skynews - "dystopian": - - orwellian - "Earth is Horizontal": - - earth is flat - - flatearth - - flat earth - "electro magnetic death antenna": - - 5g - "electro magnetic water shaker antenna": - - 2.4ghz - "electro magnetic air shaker antenna": - - 5ghz - - 5.0ghz - "Federal Government of USA": - - biden administration - - biden admin - - biden government - - bush administration - - bush admin - - bush government - - obama administration - - obama admin - - obama government - - trump administration - - trump admin - - trump government - "fictional weapon": - - atom bomb - - atomic bomb - - nukes - - nuclear bomb - "firmament": - - atmosphere - - ozone - # People who have been made to believe that earth, moon and sun are - # flying rocks traveling in an impossible vacuum of nothingness. - "globe believer": - - globtard - "Government Weather Change Scam": - - climate change - - climate summit - - global warming - "hazardous": - - gmo - "Human Trafficking Group": - - prostitution ring - "Human Trafficking Industry": - - porn industry - - pornographic industry - - pornography industry - - sex industry - "impossible war": - - atomic war - - nuclear war - # People who observe that earth is plane, and is enclosed by a firmament - # that separates earth from water, not space. - "Horizontal Earth Activist": - - flatearther - - flat earther - - globe sceptic - "internationalism": - - globalism - "internationalist": - - globalist - # Better options might be Freenet, Mixnet - "Meshnet": - - darknet - - dark net - "MI5-controlled publishing agency": - - bbc news - - the guardian - "Misleading Digital Coin": - - oecd - - shit coin - "NSDAP": - - nazi - "online content publishing platform": - - facebook - - instagram - - mastodon - - myspace - - pinterest - - tumblr - - twitter - - wix - - wordpress - - xitter - "petroleum": - - fossil fuel - - fossil oil - "plane": - - planet - "poison": - - flouride - - fluoride - "poisoned": - - flouridated - - fluoridated - "poisoning": - - flouridation - - fluoridation - "Scam Currency Trading": - - forex - "sponsor": - - money donor - - financier - "water above the firmament": - - outerspace - - outer space - "World": - - globe - "Worldwide": - - around the globe - - global - - globally - "Hospitality Directory": - - airbnb - - booking - "Mobile OS": - - android - - ipad - - iphone - - ipod - "Telecom Company": - - at&t - - verizon - "Social Media Platform": - - digg - - facebook - - github - - instagram - - myspace - - reddit - - snapchat - - pinterest - - tiktok - - tumblr - - twitter - - whatsapp - "Chat Service Platform": - - discord - - gitlab - "Email Service Provider": - - gmail - - ymail - "Search Provider": - - bing - - google - - yahoo - "Video Streaming Platform": - - netflix - - youtube - "Music Streaming Platform": - - spotify - "GPS Service Provider": - - waze - "Software Comopany": - - apple computers - - apple inc - - microsoft diff --git a/slixfeed/assets/proxies.toml b/slixfeed/assets/proxies.toml new file mode 100644 index 0000000..eea7d78 --- /dev/null +++ b/slixfeed/assets/proxies.toml @@ -0,0 +1,523 @@ +[proxies.anonymousoverflow] +clearnet = [ + "https://ao.phreedom.club", + "https://overflow.hostux.net", + "https://ao.foss.wtf", + "https://overflow.adminforge.de", + "https://overflow.lunar.icu", + "https://anonymousoverflow.esmailelbob.xyz", + "https://overflow.smnz.de", + "https://ao.vern.cc", + "https://overflow.777.tf", + "https://code.whatever.social", + "https://stackoverflow.vern.cc", + "https://anonymousoverflow.vern.cc", + "https://ao.bloatcat.tk", + "https://se.chaotic.ninja", + "https://anonymousoverflow.privacyfucking.rocks", + "https://overflow.projectsegfau.lt", + "https://anonoverflow.frontendfriendly.xyz", + "https://overflow.fascinated.cc", +] +i2p = [ + "http://vernmzgraj6aaoafmehupvtkkynpaa67rxcdj2kinwiy6konn6rq.b32.i2p", +] +loki = [] +tor = [ + "http://anonymousoverflow.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://ao.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", +] +yggdrasil = [ + "http://[301:f69c:2017:b6b8::8]", +] +hostname = [ + "stackoverflow.com", +] +type = [ + "link", +] + +[proxies.dumb] +clearnet = [ + "https://dumb.privacydev.net", + "https://dm.vern.cc", + "https://dumb.lunar.icu", + "https://dumb.esmailelbob.xyz", +] +hostname = [ + "genius.com", +] +type = [ + "link", +] + +[proxies.invidious] +clearnet = [ + "https://incogtube.com", + "https://vid.puffyan.us", + "https://yt.artemislena.eu", + "https://invidious.snopyta.org", + "https://youtube.076.ne.jp", + "https://invidious.osi.kr", + "https://invidious-us.kavin.rocks", + "https://inv.cthd.icu", + "https://invidious.namazso.eu", + "https://yewtu.be", + "https://invidio.xamh.de", + "https://invidious.kavin.rocks", + "https://monocles.live", + "https://inv.riverside.rocks", + "https://invidious.lunar.icu", + "https://y.com.sb", + "https://inv.bp.projectsegfau.lt", + "https://invidious.flokinet.to", + "https://invidious.sethforprivacy.com", + "https://invidious.esmailelbob.xyz", + "https://ytb.trom.tf", + "https://invidious.domain.glass", + "https://tube.cthd.icu", + "https://inv.vern.cc", + "https://invidious.garudalinux.org", + "https://youtube.owacon.moe", + "https://invidious.tinfoil-hat.net", + "https://iv.melmac.space", + "https://invidious.tiekoetter.com", + "https://invidious.baczek.me", + "https://invidious.no-logs.com", + "https://invidious.0011.lt", + "https://yt.funami.tech", + "https://inv.tux.pizza", + "https://vid.priv.au", + "https://not-ytb.blocus.ch", + "https://inv.creller.net", + "https://inv.zzls.xyz", + "https://yt.floss.media", + "https://invidious.slipfox.xyz", + "https://par1.iv.ggtyler.dev", + "https://inv.citw.lgbt", + "https://invidious.io.lol", + "https://yt.oelrichsgarcia.de", + "https://iv.nboeck.de", + "https://invidious.protokolla.fi", + "https://invidious.fi", + "https://onion.tube", + "https://inv.in.projectsegfau.lt", + "https://invidious.privacydev.net", + "https://invidious.takebackourtech.org", + "https://qc1.iv.ggtyler.dev", + "https://anontube.lvkaszus.pl", + "https://invidious.asir.dev", + "https://invidious.fdn.fr", + "https://iv.datura.network", + "https://invidious.private.coffee", + "https://inv.pistasjis.net", + "https://invidious.pavot.ca", + "https://yt.cdaut.de", + "https://yt.drgnz.club", + "https://invidious.perennialte.ch", + "https://yt.chaotic.ninja", + "https://yt.omada.cafe", + "https://super8.absturztau.be", + "https://i.redsnake.io", + "https://watch.supernets.org", + "https://invidious.qwik.space", + "https://farside.link/invidious", + "https://inv.odyssey346.dev", + "https://invidious.mutahar.rocks", + "https://invidious.nerdvpn.de", + "https://invidious.projectsegfau.lt", + "https://invidious.weblibre.org", + "https://iv.ggtyler.dev", + "https://watch.thekitty.zone", + "https://inv.us.projectsegfau.lt", + "https://invidious.drgns.space", +] +i2p = [ + "http://tube.i2p", + "http://inv.cn.i2p", + "http://jewtube.i2p", + "http://ytmous.i2p", + "http://pa7eextqat4wg35onzs4cnlhqa3gvzen243bcbrng67zyla4fqya.b32.i2p", + "http://inv.vern.i2p", + "http://inv.zzls.i2p", + "http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p", +] +loki = [] +tor = [ + "http://tuberyps2pn6dor6h47brof3w2asmauahhk4ei42krugybzzzo55klad.onion", + "http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion", + "http://qwikxxt6jvggxzxe2v2fuzro5j7ibgphxmblmri6wkj5vpicdbo2kwad.onion", + "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion", + "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion", + "http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion", + "http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion", + "http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion", + "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion", + "http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion", + "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion", + "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion", + "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion", +] +yggdrasil = [ + "http://[200:168a:c80a:b258:1dfe:f920:4414:6897]", +] +hostname = [ + "youtu.be", + "youtube.com", +] +type = [ + "feed", + "link", +] + +[proxies.librarian] +clearnet = [ + "https://librarian.pussthecat.org", + "https://odysee.076.ne.jp", + "https://lbry.projectsegfau.lt", + "https://librarian.esmailelbob.xyz", + "https://lbry.mywire.org", + "https://lbry.slipfox.xyz", + "https://lbry.vern.cc", + "https://lbry.ooguy.com", + "https://lbn.frail.duckdns.org", + "https://odysee.owacon.moe", + "https://farside.link/librarian", +] +i2p = [] +loki = [] +tor = [ + "http://librarian.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://5znbzx2xcymhddzekfjib3isgqq4ilcyxa2bsq6vqmnvbtgu4f776lqd.onion", + "http://bxewpsswttslepw27w2hhxhlizwm7l7y54x3jw5cfrb64hb6lgc557ad.onion", +] +yggdrasil = [] +hostname = [ + "odysee.com", +] +type = [ + "feed", + "link", +] + +[proxies.libreddit] +clearnet = [ + "https://libreddit.spike.codes", + "https://libreddit.hu", + "https://libreddit.nl", + "https://libreddit.bus-hit.me", + "https://libreddit.strongthany.cc", + "https://libreddit.esmailelbob.xyz", + "https://lr.riverside.rocks", + "https://libreddit.40two.app", + "https://libreddit.albony.xyz", + "https://libreddit.domain.glass", + "https://discuss.whatever.social", + "https://libreddit.kavin.rocks", + "https://libreddit.privacy.com.de", + "https://libreddit.eu.org", + "https://libreddit.bloatcat.tk", + "https://libreddit.pabloferreiro.es", + "https://lr.foss.wtf", + "https://libreddit.no-logs.com", + "https://lr.slipfox.xyz", + "https://lr.creller.net", + "https://libreddit.dcs0.hu", + "https://l.opnxng.com", + "https://libreddit.tux.pizza", + "https://reddit.leptons.xyz", + "https://reddit.baby", + "https://snoo.habedieeh.re", + "https://lr.4201337.xyz", + "https://libreddit.private.coffee", + "https://lr.artemislena.eu", + "https://libreddit.privacyfucking.rocks", + "https://libreddit.qwik.space", + "https://farside.link/libreddit", + "https://de.leddit.xyz", + "https://leddit.xyz", + "https://libreddit.alefvanoon.xyz", + "https://libreddit.autarkic.org", + "https://libreddit.awesomehub.io", + "https://libreddit.crewz.me", + "https://libreddit.database.red", + "https://libreddit.datatunnel.xyz", + "https://libreddit.de", + "https://libreddit.dothq.co", + "https://libreddit.drivet.xyz", + "https://libreddit.flux.industries", + "https://libreddit.igna.rocks", + "https://libredd.it", + "https://libreddit.jamiethalacker.dev", + "https://libreddit.kylrth.com", + "https://libreddit.lunar.icu", + "https://libreddit.mutahar.rocks", + "https://libreddit.northboot.xyz", + "https://libreddit.pussthecat.org", + "https://libreddit.silkky.cloud", + "https://libreddit.some-things.org", + "https://libreddit.sugoma.tk", + "https://libreddit.tiekoetter.com", + "https://libreddit.totaldarkness.net", + "https://libreddit.winscloud.net", + "https://libreddit.yonalee.eu", + "https://lr.cowfee.moe", + "https://lr.mint.lgbt", + "https://lr.oversold.host", + "https://lr.stilic.ml", + "https://r.nf", + "https://r.walkx.org", + "https://reddi.tk", + "https://reddit.artemislena.eu", + "https://reddit.invak.id", + "https://reddit.phii.me", + "https://reddit.rtrace.io", + "https://reddit.stuehieyr.com", + "https://safereddit.com", + "https://libreddit.nohost.network", + "https://libreddit.projectsegfau.lt", + "https://reddit.simo.sh", +] +i2p = [ + "http://woo5ugmoomzbtaq6z46q4wgei5mqmc6jkafqfi5c37zni7xc4ymq.b32.i2p", +] +loki = [] +tor = [ + "http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion", + "http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion", + "http://qwikxx4xqvhdyyazkrw7pwdpdppfnmn7j2n6cvq5zecm4atbppaslzad.onion", + "http://ecue64ybzvn6vjzl37kcsnwt4ycmbsyf74nbttyg7rkc3t3qwnj7mcyd.onion", + "http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion", + "http://inytumdgnri7xsqtvpntjevaelxtgbjqkuqhtf6txxhwbll2fwqtakqd.onion", + "http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion", + "http://kzhfp3nvb4qp575vy23ccbrgfocezjtl5dx66uthgrhu7nscu6rcwjyd.onion", + "http://lbrdtjaj7567ptdd4rv74lv27qhxfkraabnyphgcvptl64ijx2tijwid.onion", + "http://libreddit.2syis2nnyytz6jnusnjurva4swlaizlnleiks5mjp46phuwjbdjqwgqd.onion", + "http://ledditqo2mxfvlgobxnlhrkq4dh34jss6evfkdkb2thlvy6dn4f4gpyd.onion", + "http://libreddit.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion", + "http://libredoxhxwnmsb6dvzzd35hmgzmawsq5i764es7witwhddvpc2razid.onion", + "http://ol5begilptoou34emq2sshf3may3hlblvipdjtybbovpb7c7zodxmtqd.onion", + "http://liredejj74h5xjqr2dylnl5howb2bpikfowqoveub55ru27x43357iid.onion", +] +yggdrasil = [] +hostname = [ + "reddit.com", +] +type = [ + "link", +] + +[proxies.neuters] +clearnet = [ + "https://neuters.de", + "https://neuters.privacyfucking.rocks", +] +hostname = [ + "reuters.com", +] +type = [ + "link", +] + +[proxies.nitter] +clearnet = [ + "https://nitter.hu", + "https://nitter.actionsack.com", + "https://nitter.net", + "https://nitter.1d4.us", + "https://nitter.nixnet.services", + "https://nitter.unixfox.eu", + "https://nitter.sethforprivacy.com", + "https://nitter.pussthecat.org", + "https://nitter.it", + "https://nitter.moomoo.me", + "https://tw.artemislena.eu", + "https://nitter.snopyta.org", + "https://birdsite.xanny.family", + "https://nitter.domain.glass", + "https://read.whatever.social", + "https://nitter.lacontrevoie.fr", + "https://bird.trom.tf", + "https://nitter.hostux.net", + "https://nitter.sneed.network", + "https://twitter.owacon.moe", + "https://nitter.ggc-project.de", + "https://unofficialbird.com", + "https://nitter.fdn.fr", + "https://nitter.no-logs.com", + "https://nitter.slipfox.xyz", + "https://nitter.one", + "https://nitter.ungovernable.men", + "https://nitter.private.coffee", + "https://nitter.soopy.moe", + "https://nitter.oksocial.net", + "https://n.sneed.network", + "https://nitter.qwik.space", + "https://nitter.nohost.network", + "https://de.nttr.stream", + "https://farside.link/nitter", + "https://nitter.42l.fr", + "https://nitter.bus-hit.me", + "https://nitter.ca", + "https://nitter.eu", + "https://nitter.grimneko.de", + "https://nitter.kavin.rocks", + "https://nitter.koyu.space", + "https://nitter.namazso.eu", + "https://nttr.stream", + "https://twitter.076.ne.jp", + "https://twitter.censors.us", + "https://n.hyperborea.cloud", + "https://n.biendeo.com", + "https://n.opnxng.com", + "https://nitter.adminforge.de", + "https://nitter.catsarch.com", + "https://nitter.cz", + "https://nitter.esmailelbob.xyz", + "https://nitter.in.projectsegfau.lt", + "https://nitter.io.lol", + "https://nitter.ktachibana.party", + "https://nitter.kylrth.com", + "https://nitter.poast.org", + "https://nitter.privacydev.net", + "https://nitter.salastil.com", + "https://nitter.woodland.cafe", +] +i2p = [ + "http://tm4rwkeysv3zz3q5yacyr4rlmca2c4etkdobfvuqzt6vsfsu4weq.b32.i2p", +] +loki = [] +tor = [ + "http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion", + "http://qwikxx2erhx6qrymued6ox2qkf2yeogjwypqvzoif4fqkljixasr6oid.onion", + "http://n.sneed4fmhevap3ci4xhf4wgkf72lwk275lcgomnfgwniwmqvaxyluuid.onion", +] +yggdrasil = [] +hostname = [ + "twitter.com", + "x.com", +] +type = [ + "feed", + "link", +] + +[proxies.proxitok] +clearnet = [ + "https://proxitok.lunar.icu", + "https://tik.hostux.net", + "https://proxitok.pabloferreiro.es", + "https://proxitok.privacy.com.de", + "https://tok.adminforge.de", + "https://tok.habedieeh.re", + "https://proxitok.pussthecat.org", + "https://proxitok.privacyfucking.rocks", + "https://cringe.whatever.social", + "https://proxitok.esmailelbob.xyz", + "https://proxitok.privacydev.net", + "https://proxitok.pufe.org", + "https://tok.artemislena.eu", + "https://tok.thekitty.zone", + "https://tiktok.chauvet.pro", + "https://tt.vern.cc", + "https://farside.link/proxitok", +] +i2p = [ + "http://qr.vern.i2p", +] +loki = [] +tor = [] +yggdrasil = [] +hostname = [ + "tiktok.com", +] +type = [ + "link", +] + +[proxies.quetre] +clearnet = [ + "https://quetre.privacydev.net", + "https://quetre.pufe.org", + "https://que.wilbvr.me", + "https://quetre.iket.me", + "https://quetre.pussthecat.org", + "https://quetre.tokhmi.xyz", + "https://quetre.projectsegfau.lt", + "https://quetre.esmailelbob.xyz", + "https://quetre.odyssey346.dev", + "https://ask.habedieeh.re", + "https://quetre.marcopisco.com", + "https://quetre.blackdrgn.nl", + "https://quetre.lunar.icu", + "https://quora.femboy.hu", + "https://quora.vern.cc", + "https://farside.link/quetre", + "https://quetre.fascinated.cc", +] +i2p = [] +loki = [] +tor = [ + "http://ask.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion", + "http://qr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion", + "http://quetre.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion", + "http://quetre.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion", + "http://quora.cepyxplublbyw2f4axy4pyztfbxmf63lrt2c7uwv6wl4iixz53czload.onion", +] +yggdrasil = [] +hostname = [ + "quora.com", +] +type = [ + "link", +] + +[proxies.teddit] +clearnet = [ + "https://teddit.pussthecat.org", + "https://teddit.zaggy.nl", + "https://teddit.bus-hit.me", + "https://teddit.adminforge.de", + "https://incogsnoo.com", + "https://teddit.hostux.net", + "https://teddit.ggc-project.de", + "https://teddit.httpjames.space", + "https://snoo.ioens.is", + "https://teddit.no-logs.com", + "https://teddit.net", + "https://i.opnxng.com", + "https://tedd.it", + "https://teddit.projectsegfau.lt", + "https://reddit.lol", + "https://rdt.trom.tf", + "https://t.sneed.network", + "https://farside.link/teddit", + "https://teddit.alefvanoon.xyz", + "https://teddit.domain.glass", + "https://teddit.froth.zone", + "https://teddit.namazso.eu", + "https://teddit.sethforprivacy.com", + "https://teddit.tinfoil-hat.net", + "https://teddit.totaldarkness.net", + "https://td.vern.cc", +] +i2p = [ + "http://k62ptris7p72aborr4zoanee7xai6wguucveptwgxs5vbgt7qzpq.b32.i2p", + "http://teddit.i2p", +] +loki = [] +tor = [ + "http://t.sneed4fmhevap3ci4xhf4wgkf72lwk275lcgomnfgwniwmqvaxyluuid.onion", + "http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion", +] +yggdrasil = [ + "http://[200:5e4b:515c:e42b:3e73:6fbf:2f11:779d]", +] +hostname = [ + "reddit.com", +] +type = [ + "link", +] diff --git a/slixfeed/assets/proxies.yaml b/slixfeed/assets/proxies.yaml deleted file mode 100644 index c8c6fd9..0000000 --- a/slixfeed/assets/proxies.yaml +++ /dev/null @@ -1,478 +0,0 @@ -proxies: - anonymousoverflow: - clearnet: - - https://ao.phreedom.club - - https://overflow.hostux.net - - https://ao.foss.wtf - - https://overflow.adminforge.de - - https://overflow.lunar.icu - - https://anonymousoverflow.esmailelbob.xyz - - https://overflow.smnz.de - - https://ao.vern.cc - - https://overflow.777.tf - - https://code.whatever.social - - https://stackoverflow.vern.cc - - https://anonymousoverflow.vern.cc - - https://ao.bloatcat.tk - - https://se.chaotic.ninja - - https://anonymousoverflow.privacyfucking.rocks - - https://overflow.projectsegfau.lt - - https://anonoverflow.frontendfriendly.xyz - - https://overflow.fascinated.cc - i2p: - - http://vernmzgraj6aaoafmehupvtkkynpaa67rxcdj2kinwiy6konn6rq.b32.i2p - loki: [] - tor: - - http://anonymousoverflow.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion - - http://ao.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion - yggdrasil: - - http://[301:f69c:2017:b6b8::8] - hostname: - - stackoverflow.com - type: - - link - - dumb: - clearnet: - - https://dumb.privacydev.net - - https://dm.vern.cc - - https://dumb.lunar.icu - - https://dumb.esmailelbob.xyz - hostname: - - genius.com - type: - - link - - invidious: - clearnet: - - https://incogtube.com - - https://vid.puffyan.us - - https://yt.artemislena.eu - - https://invidious.snopyta.org - - https://youtube.076.ne.jp - - https://invidious.osi.kr - - https://invidious-us.kavin.rocks - - https://inv.cthd.icu - - https://invidious.namazso.eu - - https://yewtu.be - - https://invidio.xamh.de - - https://invidious.kavin.rocks - - https://monocles.live - - https://inv.riverside.rocks - - https://invidious.lunar.icu - - https://y.com.sb - - https://inv.bp.projectsegfau.lt - - https://invidious.flokinet.to - - https://invidious.sethforprivacy.com - - https://invidious.esmailelbob.xyz - - https://ytb.trom.tf - - https://invidious.domain.glass - - https://tube.cthd.icu - - https://inv.vern.cc - - https://invidious.garudalinux.org - - https://youtube.owacon.moe - - https://invidious.tinfoil-hat.net - - https://iv.melmac.space - - https://invidious.tiekoetter.com - - https://invidious.baczek.me - - https://invidious.no-logs.com - - https://invidious.0011.lt - - https://yt.funami.tech - - https://inv.tux.pizza - - https://vid.priv.au - - https://not-ytb.blocus.ch - - https://inv.creller.net - - https://inv.zzls.xyz - - https://yt.floss.media - - https://invidious.slipfox.xyz - - https://par1.iv.ggtyler.dev - - https://inv.citw.lgbt - - https://invidious.io.lol - - https://yt.oelrichsgarcia.de - - https://iv.nboeck.de - - https://invidious.protokolla.fi - - https://invidious.fi - - https://onion.tube - - https://inv.in.projectsegfau.lt - - https://invidious.privacydev.net - - https://invidious.takebackourtech.org - - https://qc1.iv.ggtyler.dev - - https://anontube.lvkaszus.pl - - https://invidious.asir.dev - - https://invidious.fdn.fr - - https://iv.datura.network - - https://invidious.private.coffee - - https://inv.pistasjis.net - - https://invidious.pavot.ca - - https://yt.cdaut.de - - https://yt.drgnz.club - - https://invidious.perennialte.ch - - https://yt.chaotic.ninja - - https://yt.omada.cafe - - https://super8.absturztau.be - - https://i.redsnake.io - - https://watch.supernets.org - - https://invidious.qwik.space - - https://farside.link/invidious - - https://inv.odyssey346.dev - - https://invidious.mutahar.rocks - - https://invidious.nerdvpn.de - - https://invidious.projectsegfau.lt - - https://invidious.weblibre.org - - https://iv.ggtyler.dev - - https://watch.thekitty.zone - - https://inv.us.projectsegfau.lt - - https://invidious.drgns.space - i2p: - - http://tube.i2p - - http://inv.cn.i2p - - http://jewtube.i2p - - http://ytmous.i2p - - http://pa7eextqat4wg35onzs4cnlhqa3gvzen243bcbrng67zyla4fqya.b32.i2p - - http://inv.vern.i2p - - http://inv.zzls.i2p - - http://verni6dr4qxjgjumnvesxerh5rvhv6oy5ddeibaqy5d7tgbiiyfa.b32.i2p - loki: [] - tor: - - http://tuberyps2pn6dor6h47brof3w2asmauahhk4ei42krugybzzzo55klad.onion - - http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion - - http://qwikxxt6jvggxzxe2v2fuzro5j7ibgphxmblmri6wkj5vpicdbo2kwad.onion - - http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion - - http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion - - http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion - - http://euxxcnhsynwmfidvhjf6uzptsmh4dipkmgdmcmxxuo7tunp3ad2jrwyd.onion - - http://invidious.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion - - http://iv.odysfvr23q5wgt7i456o5t3trw2cw5dgn56vbjfbq2m7xsc5vqbqpcyd.onion - - http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion - - http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion - - http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion - - http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion - - http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion - yggdrasil: - - http://[200:168a:c80a:b258:1dfe:f920:4414:6897] - hostname: - - youtu.be - - youtube.com - type: - - feed - - link - - librarian: - clearnet: - - https://librarian.pussthecat.org - - https://odysee.076.ne.jp - - https://lbry.projectsegfau.lt - - https://librarian.esmailelbob.xyz - - https://lbry.mywire.org - - https://lbry.slipfox.xyz - - https://lbry.vern.cc - - https://lbry.ooguy.com - - https://lbn.frail.duckdns.org - - https://odysee.owacon.moe - - https://farside.link/librarian - i2p: [] - loki: [] - tor: - - http://librarian.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion - - http://lbry.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion - - http://5znbzx2xcymhddzekfjib3isgqq4ilcyxa2bsq6vqmnvbtgu4f776lqd.onion - - http://bxewpsswttslepw27w2hhxhlizwm7l7y54x3jw5cfrb64hb6lgc557ad.onion - yggdrasil: [] - hostname: - - odysee.com - type: - - feed - - link - - libreddit: - clearnet: - - https://libreddit.spike.codes - - https://libreddit.hu - - https://libreddit.nl - - https://libreddit.bus-hit.me - - https://libreddit.strongthany.cc - - https://libreddit.esmailelbob.xyz - - https://lr.riverside.rocks - - https://libreddit.40two.app - - https://libreddit.albony.xyz - - https://libreddit.domain.glass - - https://discuss.whatever.social - - https://libreddit.kavin.rocks - - https://libreddit.privacy.com.de - - https://libreddit.eu.org - - https://libreddit.bloatcat.tk - - https://libreddit.pabloferreiro.es - - https://lr.foss.wtf - - https://libreddit.no-logs.com - - https://lr.slipfox.xyz - - https://lr.creller.net - - https://libreddit.dcs0.hu - - https://l.opnxng.com - - https://libreddit.tux.pizza - - https://reddit.leptons.xyz - - https://reddit.baby - - https://snoo.habedieeh.re - - https://lr.4201337.xyz - - https://libreddit.private.coffee - - https://lr.artemislena.eu - - https://libreddit.privacyfucking.rocks - - https://libreddit.qwik.space - - https://farside.link/libreddit - - https://de.leddit.xyz - - https://leddit.xyz - - https://libreddit.alefvanoon.xyz - - https://libreddit.autarkic.org - - https://libreddit.awesomehub.io - - https://libreddit.crewz.me - - https://libreddit.database.red - - https://libreddit.datatunnel.xyz - - https://libreddit.de - - https://libreddit.dothq.co - - https://libreddit.drivet.xyz - - https://libreddit.flux.industries - - https://libreddit.igna.rocks - - https://libredd.it - - https://libreddit.jamiethalacker.dev - - https://libreddit.kylrth.com - - https://libreddit.lunar.icu - - https://libreddit.mutahar.rocks - - https://libreddit.northboot.xyz - - https://libreddit.pussthecat.org - - https://libreddit.silkky.cloud - - https://libreddit.some-things.org - - https://libreddit.sugoma.tk - - https://libreddit.tiekoetter.com - - https://libreddit.totaldarkness.net - - https://libreddit.winscloud.net - - https://libreddit.yonalee.eu - - https://lr.cowfee.moe - - https://lr.mint.lgbt - - https://lr.oversold.host - - https://lr.stilic.ml - - https://r.nf - - https://r.walkx.org - - https://reddi.tk - - https://reddit.artemislena.eu - - https://reddit.invak.id - - https://reddit.phii.me - - https://reddit.rtrace.io - - https://reddit.stuehieyr.com - - https://safereddit.com - - https://libreddit.nohost.network - - https://libreddit.projectsegfau.lt - - https://reddit.simo.sh - i2p: - - http://woo5ugmoomzbtaq6z46q4wgei5mqmc6jkafqfi5c37zni7xc4ymq.b32.i2p - loki: [] - tor: - - http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion - - http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion - - http://qwikxx4xqvhdyyazkrw7pwdpdppfnmn7j2n6cvq5zecm4atbppaslzad.onion - - http://ecue64ybzvn6vjzl37kcsnwt4ycmbsyf74nbttyg7rkc3t3qwnj7mcyd.onion - - http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion - - http://inytumdgnri7xsqtvpntjevaelxtgbjqkuqhtf6txxhwbll2fwqtakqd.onion - - http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion - - http://kzhfp3nvb4qp575vy23ccbrgfocezjtl5dx66uthgrhu7nscu6rcwjyd.onion - - http://lbrdtjaj7567ptdd4rv74lv27qhxfkraabnyphgcvptl64ijx2tijwid.onion - - http://libreddit.2syis2nnyytz6jnusnjurva4swlaizlnleiks5mjp46phuwjbdjqwgqd.onion - - http://ledditqo2mxfvlgobxnlhrkq4dh34jss6evfkdkb2thlvy6dn4f4gpyd.onion - - http://libreddit.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion - - http://libredoxhxwnmsb6dvzzd35hmgzmawsq5i764es7witwhddvpc2razid.onion - - http://ol5begilptoou34emq2sshf3may3hlblvipdjtybbovpb7c7zodxmtqd.onion - - http://liredejj74h5xjqr2dylnl5howb2bpikfowqoveub55ru27x43357iid.onion - yggdrasil: [] - hostname: - - reddit.com - type: - - link - - neuters: - clearnet: - - https://neuters.de - - https://neuters.privacyfucking.rocks - hostname: - - reuters.com - type: - - link - - nitter: - clearnet: - - https://nitter.hu - - https://nitter.actionsack.com - - https://nitter.net - - https://nitter.1d4.us - - https://nitter.nixnet.services - - https://nitter.unixfox.eu - - https://nitter.sethforprivacy.com - - https://nitter.pussthecat.org - - https://nitter.it - - https://nitter.moomoo.me - - https://tw.artemislena.eu - - https://nitter.snopyta.org - - https://birdsite.xanny.family - - https://nitter.domain.glass - - https://read.whatever.social - - https://nitter.lacontrevoie.fr - - https://bird.trom.tf - - https://nitter.hostux.net - - https://nitter.sneed.network - - https://twitter.owacon.moe - - https://nitter.ggc-project.de - - https://unofficialbird.com - - https://nitter.fdn.fr - - https://nitter.no-logs.com - - https://nitter.slipfox.xyz - - https://nitter.one - - https://nitter.ungovernable.men - - https://nitter.private.coffee - - https://nitter.soopy.moe - - https://nitter.oksocial.net - - https://n.sneed.network - - https://nitter.qwik.space - - https://nitter.nohost.network - - https://de.nttr.stream - - https://farside.link/nitter - - https://nitter.42l.fr - - https://nitter.bus-hit.me - - https://nitter.ca - - https://nitter.eu - - https://nitter.grimneko.de - - https://nitter.kavin.rocks - - https://nitter.koyu.space - - https://nitter.namazso.eu - - https://nttr.stream - - https://twitter.076.ne.jp - - https://twitter.censors.us - - https://n.hyperborea.cloud - - https://n.biendeo.com - - https://n.opnxng.com - - https://nitter.adminforge.de - - https://nitter.catsarch.com - - https://nitter.cz - - https://nitter.esmailelbob.xyz - - https://nitter.in.projectsegfau.lt - - https://nitter.io.lol - - https://nitter.ktachibana.party - - https://nitter.kylrth.com - - https://nitter.poast.org - - https://nitter.privacydev.net - - https://nitter.salastil.com - - https://nitter.woodland.cafe - i2p: - - http://tm4rwkeysv3zz3q5yacyr4rlmca2c4etkdobfvuqzt6vsfsu4weq.b32.i2p - loki: [] - tor: - - http://qwikxxeiw4kgmml6vjw2bsxtviuwjce735dunai2djhu6q7qbacq73id.onion - - http://qwikxx2erhx6qrymued6ox2qkf2yeogjwypqvzoif4fqkljixasr6oid.onion - - http://n.sneed4fmhevap3ci4xhf4wgkf72lwk275lcgomnfgwniwmqvaxyluuid.onion - yggdrasil: [] - hostname: - - twitter.com - - x.com - type: - - feed - - link - - proxitok: - clearnet: - - https://proxitok.lunar.icu - - https://tik.hostux.net - - https://proxitok.pabloferreiro.es - - https://proxitok.privacy.com.de - - https://tok.adminforge.de - - https://tok.habedieeh.re - - https://proxitok.pussthecat.org - - https://proxitok.privacyfucking.rocks - - https://cringe.whatever.social - - https://proxitok.esmailelbob.xyz - - https://proxitok.privacydev.net - - https://proxitok.pufe.org - - https://tok.artemislena.eu - - https://tok.thekitty.zone - - https://tiktok.chauvet.pro - - https://tt.vern.cc - - https://farside.link/proxitok - i2p: - - http://qr.vern.i2p - loki: [] - tor: [] - yggdrasil: [] - hostname: - - tiktok.com - type: - - link - - quetre: - clearnet: - - https://quetre.privacydev.net - - https://quetre.pufe.org - - https://que.wilbvr.me - - https://quetre.iket.me - - https://quetre.pussthecat.org - - https://quetre.tokhmi.xyz - - https://quetre.projectsegfau.lt - - https://quetre.esmailelbob.xyz - - https://quetre.odyssey346.dev - - https://ask.habedieeh.re - - https://quetre.marcopisco.com - - https://quetre.blackdrgn.nl - - https://quetre.lunar.icu - - https://quora.femboy.hu - - https://quora.vern.cc - - https://farside.link/quetre - - https://quetre.fascinated.cc - i2p: [] - loki: [] - tor: - - http://ask.habeehrhadazsw3izbrbilqajalfyqqln54mrja3iwpqxgcuxnus7eid.onion - - http://qr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion - - http://quetre.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion - - http://quetre.g4c3eya4clenolymqbpgwz3q3tawoxw56yhzk4vugqrl6dtu3ejvhjid.onion - - http://quora.cepyxplublbyw2f4axy4pyztfbxmf63lrt2c7uwv6wl4iixz53czload.onion - yggdrasil: [] - hostname: - - quora.com - type: - - link - - teddit: - clearnet: - - https://teddit.pussthecat.org - - https://teddit.zaggy.nl - - https://teddit.bus-hit.me - - https://teddit.adminforge.de - - https://incogsnoo.com - - https://teddit.hostux.net - - https://teddit.ggc-project.de - - https://teddit.httpjames.space - - https://snoo.ioens.is - - https://teddit.no-logs.com - - https://teddit.net - - https://i.opnxng.com - - https://tedd.it - - https://teddit.projectsegfau.lt - - https://reddit.lol - - https://rdt.trom.tf - - https://t.sneed.network - - https://farside.link/teddit - - https://teddit.alefvanoon.xyz - - https://teddit.domain.glass - - https://teddit.froth.zone - - https://teddit.namazso.eu - - https://teddit.sethforprivacy.com - - https://teddit.tinfoil-hat.net - - https://teddit.totaldarkness.net - - https://td.vern.cc - i2p: - - http://k62ptris7p72aborr4zoanee7xai6wguucveptwgxs5vbgt7qzpq.b32.i2p - - http://teddit.i2p - loki: [] - tor: - - http://t.sneed4fmhevap3ci4xhf4wgkf72lwk275lcgomnfgwniwmqvaxyluuid.onion - - http://tedditfyn6idalzso5wam5qd3kdtxoljjhbrbbx34q2xkcisvshuytad.onion - yggdrasil: - - http://[200:5e4b:515c:e42b:3e73:6fbf:2f11:779d] - hostname: - - reddit.com - type: - - link diff --git a/slixfeed/assets/queries.toml b/slixfeed/assets/queries.toml new file mode 100644 index 0000000..ca5703f --- /dev/null +++ b/slixfeed/assets/queries.toml @@ -0,0 +1,235 @@ +# The purpose of this list is to remove queries that +# are mostly utilized as trackers for advertising. + +trackers = [ +"ad", +"ad_medium", +"ad_name", +"ad_pvid", +"ad_sub", +# "ad_tags", +"advertising-id", +# "aem_p4p_detail", +"af", +"aff", +"aff_fcid", +"aff_fsk", +"aff_platform", +"aff_trace_key", +"affparams", +"afSmartRedirect", +"afftrack", +"affparams", +# "aid", +"algo_exp_id", +"algo_pvid", +"ar", +# "ascsubtag", +# "asc_contentid", +"asgtbndr", +"at_medium=", +"at_campaign", +"atc", +"ats", +"autostart", +# "b64e", # breaks yandex +"bizType", +# "block", +"bta", +"businessType", +"campaign", +"campaignId", +# "__cf_chl_rt_tk", +# "cid", # breaks sacred magick +"ck", +"content-id", +"crid", +"cst", +"cts", +"curPageLogUid", +# "data", # breaks yandex +# "dchild", +# "dclid", +"deals-widget", +"dgcid", +"dicbo", +# "dt", +"edd", +"edm_click_module", +# "ei", +# "embed", +# "_encoding", +# "etext", # breaks yandex +"eventSource", +"fbclid", +"feature", +"field-lbr_brands_browse-bin", +"forced_click", +# "fr", +# "from", # breaks yandex +"frs", +"_ga", +"ga_order", +"ga_search_query", +"ga_search_type", +"ga_view_type", +"gatewayAdapt", +# "gclid", +# "gclsrc", +"gh_jid", +"gps-id", +# "gs_lcp", +"gt", +"guccounter", +"hdtime", +"hosted_button_id", +"ICID", +"ico", +"ig_rid", +# "idzone", +# "iflsig", +"intcmp", +"irclickid", +# "irgwc", +# "irpid", +"is_from_webapp", +"itid", +# "itok", +# "katds_labels", +# "keywords", +"keyno", +"l10n", +"linkCode", +"mc", +"mid", +"__mk_de_DE", +"mp", +"nats", +"nci", +"obOrigUrl", +"offer_id", +"optout", +"oq", +"organic_search_click", +"pa", +"Partner", +"partner", +"partner_id", +"partner_ID", +"pcampaignid", +"pd_rd_i", +"pd_rd_r", +"pd_rd_w", +"pd_rd_wg", +"pdp_npi", +"pf_rd_i", +"pf_rd_m", +"pf_rd_p", +"pf_rd_r", +"pf_rd_s", +"pf_rd_t", +"pg", +"PHPSESSID", +"pk_campaign", +"pdp_ext_f", +"pkey", +"platform", +"plkey", +"pqr", +"pr", +"pro", +"prod", +"prom", +"promo", +"promocode", +"promoid", +"psc", +"psprogram", +"pvid", +"qid", +# "r", +"realDomain", +"recruiter_id", +"redirect", +"ref", +"ref_", +"ref_src", +"refcode", +"referrer", +"refinements", +"reftag", +"rf", +"rnid", +"rowan_id1", +"rowan_msg_id", +# "rss", +# "sCh", +"sclient", +"scm", +"scm_id", +"scm-url", +# "sd", +"sender_device", +"sh", +"shareId", +"showVariations", +"si", +# "sid", breaks whatsup.org.il +"___SID", +# "site_id", +"sk", +"smid", +"social_params", +"source", +"sourceId", +"sp_csd", +"spLa", +"spm", +"spreadType", +# "sprefix", +"sr", +"src", +"_src", +"src_cmp", +"src_player", +"src_src", +"srcSns", +"su", +# "sxin_0_pb", +"_t", +# "tag", +"tcampaign", +"td", +"terminal_id", +# "text", +"th", # Sometimes restored after page load +# "title", +"tracelog", +"traffic_id", +"traffic_source", +"traffic_type", +"tt", +"uact", +"ug_edm_item_id", +"utm", +# "utm1", +# "utm2", +# "utm3", +# "utm4", +# "utm5", +# "utm6", +# "utm7", +# "utm8", +# "utm9", +"utm_campaign", +"utm_content", +"utm_medium", +"utm_source", +"utm_term", +"uuid", +# "utype", +# "ve", +# "ved", +"wt_mc", +# "zone", +] diff --git a/slixfeed/assets/queries.yaml b/slixfeed/assets/queries.yaml deleted file mode 100644 index f39c66b..0000000 --- a/slixfeed/assets/queries.yaml +++ /dev/null @@ -1,235 +0,0 @@ -# The purpose of this list is to remove queries that -# are mostly utilized as trackers for advertising. - -trackers: - - ad - - ad_medium - - ad_name - - ad_pvid - - ad_sub - # ad_tags - - advertising-id - # aem_p4p_detail - - af - - aff - - aff_fcid - - aff_fsk - - aff_platform - - aff_trace_key - - affparams - - afSmartRedirect - - afftrack - - affparams - # aid - - algo_exp_id - - algo_pvid - - ar - # ascsubtag - # asc_contentid - - asgtbndr - - atc - - ats - - autostart - # b64e# breaks yandex - - bizType - # block - - bta - - businessType - - campaign - - campaignId - # __cf_chl_rt_tk - # cid# breaks sacred magick - - ck - # clickid - # client_id - # cm_ven - # cmd - - content-id - - crid - - cst - - cts - - curPageLogUid - # data# breaks yandex - # dchild - # dclid - - deals-widget - - dgcid - - dicbo - # dt - - edd - - edm_click_module - # ei - # embed - # _encoding - # etext# breaks yandex - - eventSource - - fbclid - - feature - - field-lbr_brands_browse-bin - - forced_click - # fr - - frs - # from# breaks yandex - - _ga - - ga_order - - ga_search_query - - ga_search_type - - ga_view_type - - gatewayAdapt - # gclid - # gclsrc - - gh_jid - - gps-id - # gs_lcp - - gt - - guccounter - - hdtime - - hosted_button_id - - ICID - - ico - - ig_rid - # idzone - # iflsig - - intcmp - - irclickid - # irgwc - # irpid - - is_from_webapp - - itid - # itok - # katds_labels - # keywords - - keyno - - l10n - - linkCode - - mc - - mid - - __mk_de_DE - - mp - - nats - - nci - - obOrigUrl - - offer_id - - optout - - oq - - organic_search_click - - pa - - Partner - - partner - - partner_id - - partner_ID - - pcampaignid - - pd_rd_i - - pd_rd_r - - pd_rd_w - - pd_rd_wg - - pdp_npi - - pf_rd_i - - pf_rd_m - - pf_rd_p - - pf_rd_r - - pf_rd_s - - pf_rd_t - - pg - - PHPSESSID - - pk_campaign - - pdp_ext_f - - pkey - - platform - - plkey - - pqr - - pr - - pro - - prod - - prom - - promo - - promocode - - promoid - - psc - - psprogram - - pvid - - qid - # r - - realDomain - - recruiter_id - - redirect - - ref - - ref_ - - ref_src - - refcode - - referrer - - refinements - - reftag - - rf - - rnid - - rowan_id1 - - rowan_msg_id - # rss - # sCh - - sclient - - scm - - scm_id - - scm-url - # sd - - sender_device - - sh - - shareId - - showVariations - - si - # sid# breaks whatsup.org.il - - ___SID - # site_id - - sk - - smid - - social_params - - source - - sourceId - - sp_csd - - spLa - - spm - - spreadType - # sprefix - - sr - - src - - _src - - src_cmp - - src_player - - src_src - - srcSns - - su - # sxin_0_pb - - _t - # tag - - tcampaign - - td - - terminal_id - # text - - th# Sometimes restored after page load - # title - - tracelog - - traffic_id - - traffic_source - - traffic_type - - tt - - uact - - ug_edm_item_id - - utm - # utm1 - # utm2 - # utm3 - # utm4 - # utm5 - # utm6 - # utm7 - # utm8 - # utm9 - - utm_campaign - - utm_content - - utm_medium - - utm_source - - utm_term - - uuid - # utype - # ve - # ved - # zone' diff --git a/slixfeed/config.py b/slixfeed/config.py index 4c3e396..fbd9a41 100644 --- a/slixfeed/config.py +++ b/slixfeed/config.py @@ -22,12 +22,12 @@ TODO """ import configparser -import slixfeed.sqlite as sqlite +import logging import os # from random import randrange +import slixfeed.sqlite as sqlite import sys -import yaml -import logging +import tomllib def get_value(filename, section, keys): @@ -127,7 +127,7 @@ def get_list(filename, key): Parameters ---------- filename : str - Filename of yaml file. + Filename of toml file. key: str Key. @@ -142,10 +142,10 @@ def get_list(filename, key): if not os.path.isdir(config_dir): config_dir = os.path.dirname(__file__) + "/assets" config_file = os.path.join(config_dir, filename) - with open(config_file) as defaults: + with open(config_file, mode="rb") as defaults: # default = yaml.safe_load(defaults) # result = default[key] - result = yaml.safe_load(defaults) + result = tomllib.load(defaults) result = result[key] return result @@ -370,7 +370,7 @@ async def is_include_keyword(db_file, key, string): # async def is_blacklisted(db_file, string): keywords = (await sqlite.get_filters_value(db_file, key)) or '' keywords = keywords.split(",") - keywords = keywords + (get_list("lists.yaml", key)) + keywords = keywords + (get_list("lists.toml", key)) for keyword in keywords: if not keyword or len(keyword) < 2: continue diff --git a/slixfeed/crawl.py b/slixfeed/crawl.py index f5f8a99..2ced949 100644 --- a/slixfeed/crawl.py +++ b/slixfeed/crawl.py @@ -163,7 +163,7 @@ async def feed_mode_guess(url, tree): """ urls = [] parted_url = urlsplit(url) - paths = config.get_list("lists.yaml", "pathnames") + paths = config.get_list("lists.toml", "pathnames") # Check whether URL has path (i.e. not root) # Check parted_url.path to avoid error in case root wasn't given # TODO Make more tests @@ -202,7 +202,7 @@ async def feed_mode_scan(url, tree): Message with URLs. """ urls = [] - paths = config.get_list("lists.yaml", "pathnames") + paths = config.get_list("lists.toml", "pathnames") for path in paths: # xpath_query = "//*[@*[contains(.,'{}')]]".format(path) # xpath_query = "//a[contains(@href,'{}')]".format(path) diff --git a/slixfeed/url.py b/slixfeed/url.py index 9bbf36b..e2e217e 100644 --- a/slixfeed/url.py +++ b/slixfeed/url.py @@ -22,10 +22,15 @@ from urllib.parse import ( ) -# NOTE hostname and protocol are listed as one in file -# proxies.yaml. Perhaps a better practice would be to have -# them separated. File proxies.yaml will remainas is in order -# to be coordinated with the dataset of project LibRedirect. +# NOTE +# hostname and protocol are listed as one in file proxies.toml. +# Perhaps a better practice would be to have them separated. + +# NOTE +# File proxies.toml will remain as it is, in order to be +# coordinated with the dataset of project LibRedirect, even +# though rule-sets might be adopted (see )Privacy Redirect). + def replace_hostname(url, url_type): """ Replace hostname. @@ -43,13 +48,13 @@ def replace_hostname(url, url_type): URL. """ parted_url = urlsplit(url) - protocol = parted_url.scheme + # protocol = parted_url.scheme hostname = parted_url.netloc hostname = hostname.replace("www.","") pathname = parted_url.path queries = parted_url.query fragment = parted_url.fragment - proxies = config.get_list("proxies.yaml", "proxies") + proxies = config.get_list("proxies.toml", "proxies") for proxy in proxies: proxy = proxies[proxy] if hostname in proxy["hostname"] and url_type in proxy["type"]: @@ -87,7 +92,7 @@ def remove_tracking_parameters(url): pathname = parted_url.path queries = parse_qs(parted_url.query) fragment = parted_url.fragment - trackers = config.get_list("queries.yaml", "trackers") + trackers = config.get_list("queries.toml", "trackers") for tracker in trackers: if tracker in queries: del queries[tracker] queries_new = urlencode(queries, doseq=True) diff --git a/slixfeed/xmpp/process.py b/slixfeed/xmpp/process.py index e8be56c..458dca5 100644 --- a/slixfeed/xmpp/process.py +++ b/slixfeed/xmpp/process.py @@ -83,19 +83,9 @@ async def message(self, message): how it may be used. """ if message['type'] in ('chat', 'groupchat', 'normal'): - jid = message['from'].bare jid_file = jid - message_text = ' '.join(message['body'].split()) - - print( - 'Command : {}\n' - 'JID : {}\n' - 'File : {}\n' - .format(message_text, jid, jid_file) - ) - command_time_start = time.time() # if (message['type'] == 'groupchat' and @@ -212,7 +202,7 @@ async def message(self, message): logging.debug([str(message['from']), ':', message_text]) # Support private message via groupchat - # Fail. See https://codeberg.org/poezio/slixmpp/issues/3506 + # See https://codeberg.org/poezio/slixmpp/issues/3506 if message['type'] == 'chat' and message.get_plugin('muc', check=True): jid_bare = message['from'].bare jid_full = str(message['from']) @@ -241,10 +231,11 @@ async def message(self, message): # ) # send_reply_message(self, message, response) case 'help': - command_list = '`, `'.join(action.commands()) + command_list = ' '.join(action.manual('commands.toml')) response = ( - 'Available command topics:\n`', command_list, - '`\nSend `help command_topic` for instructions.') + 'Available command keys:\n', + '```\n', command_list, '\n```\n' + '> Info: `help key`') send_reply_message(self, message, response) case _ if message_lowercase.startswith('help'): command = message_text[5:] @@ -252,22 +243,50 @@ async def message(self, message): if len(command) == 2: command_root = command[0] command_name = command[1] - command_list = ''.join(action.commands( - section=command_root, command=command_name)) - response = (command_list) + command_list = action.manual( + 'commands.toml', + section=command_root, + command=command_name) + if command_list: + command_list = ''.join(command_list) + response = (command_list) + else: + response = ( + 'KeyError for {} {}'.format( + command_root, command_name)) elif len(command) == 1: command = command[0] - command_list = '`, `'.join(action.commands(command)) - response = ( - 'Available commands:\n`', command_list, - '`\nSend `help {} command_name` for instructions.' - .format(command)) + command_list = action.manual('commands.toml', command) + if command_list: + command_list = ' '.join(command_list) + response = ( + 'Available commands:\n' + '```\n', command_list, '\n```\n' + '> Info: `help {} command`' + .format(command)) + else: + response = ('KeyError for {}'.format(command)) else: response = ( - 'Invalid. Enter command topic or command topic and name') + 'Invalid. Enter command key or command key & name') send_reply_message(self, message, response) case 'info': - response = manual.print_info() + command_list = ' '.join(action.manual('information.toml')) + response = ( + 'Available options:\n', + '```\n', command_list, '\n```\n' + '> Info: `info option`') + send_reply_message(self, message, response) + case _ if message_lowercase.startswith('info'): + command = message_text[5:] + command_list = action.manual( + 'information.toml', command) + if command_list: + # command_list = '\n'.join(command_list) + response = (command_list) + else: + response = ( + 'KeyError for {}'.format(command)) send_reply_message(self, message, response) case _ if message_lowercase in [ 'greetings', 'hallo', 'hello', 'hey', @@ -560,8 +579,16 @@ async def message(self, message): except: url = ix_url if url: + logging.info( + 'Original URL: {}'.format(url)) url = uri.remove_tracking_parameters(url) + logging.info( + 'Processed URL (tracker removal): {}' + .format(url)) url = (uri.replace_hostname(url, 'link')) or url + logging.info( + 'Processed URL (replace hostname): {}' + .format(url)) result = await fetch.http(url) data = result[0] code = result[1] @@ -642,19 +669,19 @@ async def message(self, message): url = uri.feed_to_http(url) url = (uri.replace_hostname(url, 'feed')) or url db_file = get_pathname_to_database(jid_file) - try: - response = await action.add_feed( - db_file, url) - await task.clean_tasks_xmpp( - jid, ['status']) - await task.start_tasks_xmpp( - self, jid, ['status']) - except: - response = ( - '> {}\nNews source is in the process ' - 'of being added to the subscription ' - 'list.'.format(url) - ) + # try: + response = await action.add_feed( + db_file, url) + await task.clean_tasks_xmpp( + jid, ['status']) + await task.start_tasks_xmpp( + self, jid, ['status']) + # except: + # response = ( + # '> {}\nNews source is in the process ' + # 'of being added to the subscription ' + # 'list.'.format(url) + # ) send_reply_message(self, message, response) case _ if message_lowercase.startswith('feeds'): query = message_text[6:] @@ -1089,6 +1116,13 @@ async def message(self, message): # commands are sent one close to the next # if response: message.reply(response).send() + print( + 'Message : {}\n' + 'JID : {}\n' + 'File : {}\n' + .format(message_text, jid, jid_file) + ) + command_time_finish = time.time() command_time_total = command_time_finish - command_time_start print('Finished. Total time: {}s'.format(round(command_time_total, 3)))