Empyrean is the most popular Python-based token grabber by far, and it does a lot of other things too. That said (and for good reason), it generally assumes a Windows environment. But we already know that we can't use a Windows environment because official Windows binaries for Redis don't exist anymore, much less portable ones.
but the gist seems to be "start the Celery worker and beat from its own file". This appears to be sufficient to get everything to run, even if you have to call separate executables to get things started.
To make things work with a modified Empyrean that just generates PyginMessages (e.g. you call it, it runs, it writes its outputs to stdout or disk or something instead of a webhook), you would need to:
(setup) have Redis running - either through a container (which requires WSL), a forwarded WSL port, or a standalone binary
(setup) have Celery worker and Celery beat running
Empyrean is the most popular Python-based token grabber by far, and it does a lot of other things too. That said (and for good reason), it generally assumes a Windows environment. But we already know that we can't use a Windows environment because official Windows binaries for Redis don't exist anymore, much less portable ones.
However, it seems like unofficial ports of Redis to Windows do exist, such as https://github.com/zkteco-home/redis-windows. These binaries could theoretically be included in a bundle of Pygin (downloaded at runtime), and then executed from the entrypoint of the script. Similar solutions exist for making portable Redis binaries for Linux, such as https://gist.github.com/mitjafelicijan/77648500a9024fe58216a6835d5ebf8b.
The next problem then becomes turning the whole Celery setup into a PyInstaller executable. That's also kind of challenging:
but the gist seems to be "start the Celery worker and beat from its own file". This appears to be sufficient to get everything to run, even if you have to call separate executables to get things started.
To make things work with a modified Empyrean that just generates PyginMessages (e.g. you call it, it runs, it writes its outputs to stdout or disk or something instead of a webhook), you would need to: