Code Monkey home page Code Monkey logo

yggnode's Introduction

YggNode

Kind of CDN for rss feed and .torrent files concerned

Installation :

You have just to download this file to install automatically all server dependencies and requirements.

Initial synchronisation will take around 1 hour for approximately 3720 torrents

run the installation script with a user belonging to the sudo group (root not recommended)

It's dangerous but in future, such requirement will not be required

Docker install -WIP- on this Fork : LimeDrive/yggnode-docker

Details

Flask server available for requests from RSS clients such as for example qBittorrent or Jackett

Grab original RSS feed from Yggtorrent.li using user's dedicated passkey and new .torrent files associated with RSS feed. Due to sensitive data going through this server such as passkey, servers available for being YggNode have to check following requirements :

  1. Server must contain only 2 interfaces : localhost and for example enp0s6 connected DIRECTLY to internet (ip address class will be checked and tracert will certify that)
  2. Server must NOT be container or VM (will be checked)
  3. Server's users must be only root and ygguser. ygguser will be created during installation but no rights will be given to him. (will be checked)
  4. SSH must be enable and launched by default. (otherwise, it will be impossible for admins to connect for enabling this node).
  5. Init script (still WIP) will install all dependencies, block all access to the server (ssh disabled + user's password reconfigured) and will create cron job to update server automatically, start YggNode server instance at startup and update python server.
  6. init script will also get and install let's encrypt certificates for HTTPS access

RSS server side

User calling for rss feed need to provide two parameters :

  1. caterogy's id : id required to get RSS feed for a certain category. Category id must be contain in [2139;2145] for global category or [2147;2187] for sub-category
  2. personnal passkey : passkey required to create .torrent URL for downloading later

Those two parameters are required to get RSS feed

Example : http://[DomainName or IP Adress]/rss?id=2139&passkey=Ttw5xQcCbmjHUwC9jCs8fdbrGEnF8yEt

This example will return RSS feed for category 2139 (audio) and for user identified by passkey Ttw5xQcCbmjHUwC9jCs8fdbrGEnF8yEt in the form of xml file

The passkey in the example above is not valid and has been auto-generated!!!

Torrent server side

User requesting .torrent file has to provide two parameters :

  1. Torrent id : identifier linked to .torrent file requested
  2. personnal passkey : passkey required to generate .torrent file

Those two parameters are required to get .torrent file

Example : http://[DomainName or IP Adress]/download?id=742868&passkey=Ttw5xQcCbmjHUwC9jCs8fdbrGEnF8yEt

This example will return .torrent file identified by id 742868(AFFINITY SUITE : PHOTO, DESIGNER, PUBLISHER V1.9.2 [MACOS MULTI PRÉ ACTIVÉ BY TNT]) and for user identified by passkey Ttw5xQcCbmjHUwC9jCs8fdbrGEnF8yEt in the form of Affinity SUITE v1.9.2 macOS_by_TNT.dmg.torrent

The passkey in the example above is not valid and has been auto-generated!!!

RSS/Torrent client side

WIP

yggnode's People

Contributors

limedrive avatar yggnode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

yggnode's Issues

Last synchronization isn't working for every category

Like said in the titled the synchronization for the category audio or some others is good and is often done but on your website in status as of when I'm writing this last sync for movies was done on the 19/12/22 at 18

Demande version flaresolverr

Bonjour je voulais savoir quel version de flaresolverr vous utilisez pour bypass cloudflare pour la récupération des flux RSS car lors de la dernier maj de cf flaresolverr a l'air d'être cassé

FlareSolverr/FlareSolverr#705

Merci pour votre boulot vos RSS on l'aire de toujours refresh

Last synced 4 days ago

Hello,

I think something's broken on the deployed version of yggnode.
image

The last time the tracker was synced was 4 days ago

Is there something wrong ?

requests.exceptions.ReadTimeout

https://i.imgur.com/bzwkDDA.png

Sa fonctionne sur restart on-failure mais...
restart intempestif du container, faut vraiment géré cette erreur qui fout le script en code d'exit assez souvent.

Traceback (most recent call last):
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 445, in _make_request
resync          |     six.raise_from(e, None)
resync          |   File "<string>", line 3, in raise_from
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 440, in _make_request
resync          |     httplib_response = conn.getresponse()
resync          |   File "/usr/local/lib/python3.9/http/client.py", line 1345, in getresponse
resync          |     response.begin()
resync          |   File "/usr/local/lib/python3.9/http/client.py", line 307, in begin
resync          |     version, status, reason = self._read_status()
resync          |   File "/usr/local/lib/python3.9/http/client.py", line 268, in _read_status
resync          |     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
resync          |   File "/usr/local/lib/python3.9/socket.py", line 704, in readinto
resync          |     return self._sock.recv_into(b)
resync          |   File "/usr/local/lib/python3.9/ssl.py", line 1241, in recv_into
resync          |     return self.read(nbytes, buffer)
resync          |   File "/usr/local/lib/python3.9/ssl.py", line 1099, in read
resync          |     return self._sslobj.read(len, buffer)
resync          | socket.timeout: The read operation timed out
resync          | 
resync          | During handling of the above exception, another exception occurred:
resync          | 
resync          | Traceback (most recent call last):
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 439, in send
resync          |     resp = conn.urlopen(
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 755, in urlopen
resync          |     retries = retries.increment(
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/util/retry.py", line 532, in increment
resync          |     raise six.reraise(type(error), error, _stacktrace)
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/packages/six.py", line 735, in reraise
resync          |     raise value
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 699, in urlopen
resync          |     httplib_response = self._make_request(
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 447, in _make_request
resync          |     self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
resync          |   File "/usr/local/lib/python3.9/site-packages/urllib3/connectionpool.py", line 336, in _raise_timeout
resync          |     raise ReadTimeoutError(
resync          | urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='www4.yggtorrent.li', port=443): Read timed out. (read timeout=25)
resync          | 
resync          | During handling of the above exception, another exception occurred:
resync          | 
resync          | Traceback (most recent call last):
resync          |   File "/yggnode-resync/resync.py", line 101, in <module>
resync          |     rssString = getFromCategory(str(idCat), cookies, catList, serverConfiguration["yggDomainName"], logging)
resync          |   File "/yggnode-resync/resync.py", line 19, in getFromCategory
resync          |     return (requests.get(url, cookies=CFcookies, headers=headers, timeout=25)).text
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/api.py", line 76, in get
resync          |     return request('get', url, params=params, **kwargs)
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/api.py", line 61, in request
resync          |     return session.request(method=method, url=url, **kwargs)
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 542, in request
resync          |     resp = self.send(prep, **send_kwargs)
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/sessions.py", line 655, in send
resync          |     r = adapter.send(request, **kwargs)
resync          |   File "/usr/local/lib/python3.9/site-packages/requests/adapters.py", line 529, in send
resync          |     raise ReadTimeout(e, request=request)
resync          | requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='www4.yggtorrent.li', port=443): Read timed out. (read timeout=25)

To keep logs track. Must be except:

2188

Why it's don't work with 2188 cat 😉

erreur HTTPConnectionPool

j'ai installé votre script depuis votre github, cela fonctionne jusqu'au moment ou j'ai cette erreur en boucle

INFO - 13/03/2024 23:54:23 :: Resync terminated : next in 5.0 mins
DEBUG - 14/03/2024 00:00:02 :: Server URL : https://:443
DEBUG - 14/03/2024 00:00:02 :: Successfully load categories to sync
DEBUG - 14/03/2024 00:00:02 :: Starting new HTTPS connection (1): www3.yggtorrent.qa:443
DEBUG - 14/03/2024 00:00:02 :: https://www3.yggtorrent.qa:443 "GET / HTTP/1.1" 200 None
DEBUG - 14/03/2024 00:00:02 :: Ygg Response : <Response °200é>
DEBUG - 14/03/2024 00:00:02 :: Manual mode enabled
INFO - 14/03/2024 00:00:02 :: Process category : 2178
DEBUG - 14/03/2024 00:00:02 :: Url https://www3.yggtorrent.qa/rss?action=generate&type=subcat&id=2178&passkey=
*******************************
DEBUG - 14/03/2024 00:00:02 :: Starting new HTTPS connection (1): www3.yggtorrent.qa:443
DEBUG - 14/03/2024 00:00:24 :: Server URL : https://:443
DEBUG - 14/03/2024 00:00:24 :: Successfully load categories to sync
DEBUG - 14/03/2024 00:00:24 :: Starting new HTTPS connection (1): www3.yggtorrent.qa:443
DEBUG - 14/03/2024 00:00:24 :: https://www3.yggtorrent.qa:443 "GET / HTTP/1.1" 200 None
DEBUG - 14/03/2024 00:00:24 :: Ygg Response : <Response °200é>
DEBUG - 14/03/2024 00:00:24 :: Manual mode enabled
INFO - 14/03/2024 00:00:24 :: Process category : 2178
DEBUG - 14/03/2024 00:00:24 :: Url https://www3.yggtorrent.qa/rss?action=generate&type=subcat&id=2178&passkey=
*******************************
DEBUG - 14/03/2024 00:00:24 :: Starting new HTTPS connection (1): www3.yggtorrent.qa:443
DEBUG - 14/03/2024 00:02:49 :: Starting new HTTP connection (1): 127.0.0.1:8191
WARNING - 14/03/2024 00:02:49 :: HTTPConnectionPool(host='127.0.0.1', port=8191): Max retries exceeded with url: /v1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f1a5a89b9b0>: Failed to establish a new connection: °Errno 111é Connection refused')), retrying in 320 seconds...
DEBUG - 14/03/2024 00:07:48 :: http://127.0.0.1:8191à"cmd": "request.get", "url": "https://www3.yggtorrent.qa", "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5", "maxTimeout": 60000è
DEBUG - 14/03/2024 00:07:48 :: Starting new HTTP connection (1): 127.0.0.1:8191
WARNING - 14/03/2024 00:07:48 :: HTTPConnectionPool(host='127.0.0.1', port=8191): Max retries exceeded with url: /v1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4f83a84518>: Failed to establish a new connection: °Errno 111é Connection refused')), retrying in 520 seconds...
DEBUG - 14/03/2024 00:08:09 :: http://127.0.0.1:8191à"cmd": "request.get", "url": "https://www3.yggtorrent.qa", "userAgent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5", "maxTimeout": 60000è

Ajout de catégorie

Bonjour, est ce qu'il est possible d'ajouter la catégorie 2188 ainsi que les sous catégories (2189,2190 et 219) ?

domain change

Hi,

Since the last domain change ( it's .do now ) the rss flux are gone.

Is it possible to fix it ?

Thanks

Flux RSS Down

Bonjour,

Il semblerait que les flux RSS soient down depuis ce matin 6h (d'après les logs de mon sonarr).
Visiblement, le status de dernière synchro des flux est vide:
image

new domain name

hello,

ygg is kicked from his main domain name ( .do ) the new domain is yggtorrent.wtf

when you have time, can you please change the script ?

thanks you

Vincent

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.