No description
- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .gitignore | ||
| burn_sky.py | ||
| config_template.py | ||
| nskyte2.py | ||
| postd.py | ||
| readme.md | ||
| seltest.py | ||
corssposter
SETUP "GUIDE"
- get signal cli (portable is good) and write path (STARTING FROM YOUR HOME DIR) to config.py
- use config_template.py for crearing config.py
- for example "signalcli/signal-cli-0.14.8/bin/signal-cli",
- get ublock-lite and unpack it to this_folder/extension/uBoLite.......
- create a venv here or somewhere & activate it and install atproto, seleniumbase :
python -m venv somename
source somename/bin/active
pip install atproto seleniumbase
- use this venv to run both skripts (ig you could use 2 different ones too)
- setup signalcli
- get a group id from signal-cli , write it to config.py (mby you can also do it by name by now not sure)
- get bsky acc access code and write with bsky-handle to config.py
- select an instagram acc by writing it in config.py
- should work now (atl the signal part)
- if signalcli hasnt been initialized, it still works
- FOR ASPECT RATIO DETECTION: install identify and ffmpeg/ffprobe (pre installed with some distros)
structure:
seltest.py
- contains the 'main' program: gets recent posts, checks if theyre new, then downloads them, posts to signal and STAGES bsky posting via a .json file
postd.py
contains postd class used by seltest.py (in the Post class) and directly by nksyte2.py
config.py {has to be created manually}
contains logins, insta-target, signalcli path & setup. use config_template.py as reference
nskyte2.py
- posts the staged posts to bsky (not implemented yet)
- rn it checks if its connected through tor. so call it with torify
- not sure if some stuff still leaks. hostname-lookups could go past torify. easiest way to be sure is some wireguard analysis ig
- rn it checks if its connected through tor. so call it with torify
- basic process:
- read bsky_Staged_Posts_TMP.json and turn back into post objects
- post them & add to hashset
- delete bsky_Staged_Posts_TMP.json
burn_sky.py
- deletes all post from bsky. useful for testing
TODOS:
(seltest.py) better Server Error handling:
Sometimes imginn returns a server error. seems to be rare up to now and resolved within 24h.
current state:
-
detection is implemented. see Post.open_with_check() method.
-
Post.download() method returns false if it happened with multi-img/vid post:
- with single vid postsites it doesnt matter, the overview cdnlink is already all the quality we can get
- with single img post, the overview cdnlink is also used (lower quality but acceptable)
- with multiimg it prints the error and skips { mby stage for retrying}
at overview the error is currently unhandled. ig we just rescedule then
(nskyte2.py) compress/resize image to get under 10^6 BYTE bsky server limit (for imgs)
- rn it skips those
(nskyte2.py) pass image/video aspect ratio to server (IMPLEMENTED,LIMITED TESTING DONE, PLS DO MORE)
- otherwise its shown as 1:1 with padding (might look better tho)
- currently this uses 'identify' bash calls. might be easier/more reliable with a python image lib that could need for further features anw
(seltest.py) implement stories
- not sure how to post them, but might still be nice as a backup