- cross-posted to:
- python@sh.itjust.works
- cross-posted to:
- python@sh.itjust.works
After seeing the work someone else did with migrating your subscriptions across accounts. I took their code and expanded upon it to fully synchronize your Lemmy instance accounts.
Feel free to give it a try. It’s been useful for me to have accounts in multiple instances with the instability problems right now from the big influx of users.
Let me know what you think. Hopefully it can help a few people.
I’m getting a
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
when I do:git clone https://github.com/Ac5000/lemmy_account_sync.git cd lemmy_account_sync/ pip install -r requirements.txt cp exampleconfig.ini src/myconfig.ini nano src/myconfig.ini python3 src/lemmy_sync.py
I’ve confirmed that my
[Main Account]
and[Account 2]
details are correct in myconfig.ini, but beyond that I don’t really know what I’m doing.undefined> TypeError: unsupported operand type(s) for |
the
|
syntax to indicate multiple types was introduced in Python 3.10. It looks like you are using a an older Python version.That was it exactly. Thank you.
This was a journey, so I’m documenting it here for anyone who might run into a similar situation.
I’m using a Chromebook with Linux enabled.
To confirm my version of Python I ran
python --version
:OK! Getting somewhere. So I have to check what distribution of Linux is installed with
grep '^PRETTY_NAME' /etc/os-release
Alright. Google says if I want to upgrade Python on Debian 11 I have to compile it from source. Yikes! But, wait, there’s a PPA - Yay! But the PPA is for Ubuntu - Boo.
There isn’t an active community for ChromeOS on Lemmy yet, but that other website has directions for replacing Debian with Ubuntu.
I’m lazy so I’m not doing that. I’m just going to spin up a temporary Ubuntu container that I can delete later, so my directions are much simpler:
Ctr-Alt-T to enter crosh, the ChromeOS developer shell.
vmc start termina lxc launch ubuntu:22.04 ubuntu lxc exec ubuntu -- bash apt update && apt -y upgrade add-apt-repository ppa:deadsnakes/ppa apt update apt install -y python3.11 python3.11-venv python3.11 -m ensurepip git clone https://github.com/Ac5000/lemmy_account_sync.git cd lemmy_account_sync/ pip3.11 install -r requirements.txt cp exampleconfig.ini src/myconfig.ini nano src/myconfig.ini python3.11 src/lemmy_sync.py
Success! I had to escape some special characters in my passwords, but that’s easily Google-able.
I’ll be keeping the container around for a little while to do some periodic syncs. Then I’ll remove it using crosh.
vmc start termina lxc delete ubuntu --force
I’ve only used
pyenv
on Ubuntu machines, but I expect it would work just as well in Debian-based systems.pyenv
is really useful if you need multiple versions installed simultaneously and it handles installation for you.https://github.com/pyenv/pyenv
You could even have tried with the python3:latest container :)
TIL!