Hallo Leute, die neue Instanz feddit.org ist online, gerade eigentlich noch in der Testphase, aber alles läuft rund, während wir von feddit.de nicht wissen wie es weiter geht, weil der Admin nicht erreichbar und die Website down ist. Die Zukunft von feddit.de ist ungewiss. Feddit.org ist demokratisch verwaltet, über den gemeinnützigen Verein fediverse.foundation in Wien, wo auch die Server stehen, die Adminschaft besteht aus 3 Feddit.de-Menschen und einem von der Foundation. Wollt ihr nach feddit.org?
Update: https://feddit.org/c/deutschland
An dieser Stelle reposte ich nochmal zwei einfache Wege, um seinen User (Settings und abonnierte/geblockte Communities) von einer Lemmy Instanz auf eine andere umzuziehen, beispielsweise von feddit.de auf feddit.org, von meinem ursprünglichen Post unter feddit.de/c/main ( https://alexandrite.app/feddit.de/post/11325409)
Weg 1, falls man noch einen Browser mit aktiver Session auf feddit.de hat:
Lemmy bietet seit Version 0.19 eine Funktion an, um die user data zu ex- und importieren. Das geht normalerweise über einen Button in den Settings des Webinterfaces, das geht aktuell bei feddit.de nicht.
Aber der zugrundeliegende API-Aufruf funktioniert noch, solange man noch mit einem Browser auf feddit.de eingeloggt ist:
Das funktioniert mit jeder Instanz >=0.19, man muss lediglich das “feddit.de” in der URL ersetzen. Und wenn das Webinterface funktioniert, geht das auch über den Export- Button in den Settings.
Weg 2:
Für die Leute, die keine offene Browser Session haben, hier ein kleines, aber funktionales Bash Script, welches im Ausführungsverzeichnis eine
myFedditUserData.json
erstellt, welche bei anderen Instanzen importiert werden kann.Anforderungen:
sudo apt install -y jq
Anleitung:
.sh
Endung abspeichern, z.B.getMyFedditUserData.sh
chmod +x getMyFedditUserData.sh
ausführen (Namen eventuell anpassen)./getMyFedditUserData.sh
im Terminal eingebenmyFedditUserData.json
Anmerkung: Das Script ist recht simpel, es wird ein JWT Bearer Token angefragt und als Header bei dem GET Aufruf von https://feddit.de/api/v3/user/export_settings mitgegeben. Wer kein Linux/Mac OS X zur Verfügung hat, kann den Ablauf mit anderen Mitteln nachstellen.
Das Script:
#!/bin/bash # Basic login script for Lemmy API # CHANGE THESE VALUES my_instance="https://feddit.de" # e.g. https://feddit.nl my_username="" # e.g. freamon my_password="" # e.g. hunter2 ######################################################## # Lemmy API version API="api/v3" ######################################################## # Turn off history substitution (avoid errors with ! usage) set +H ######################################################## # Login login() { end_point="user/login" json_data="{\"username_or_email\":\"$my_username\",\"password\":\"$my_password\"}" url="$my_instance/$API/$end_point" curl -H "Content-Type: application/json" -d "$json_data" "$url" } # Get userdata as JSON getUserData() { end_point="user/export_settings" url="$my_instance/$API/$end_point" curl -H "Authorization: Bearer ${JWT}" "$url" } JWT=$(login | jq -r '.jwt') printf 'JWT Token: %s\n' "$JWT" getUserData | jq > myFedditUserData.json
@[email protected] hat mein Script auch in PowerShell nachgebaut, welches unter Windows ohne WSL auskommt: https://gist.github.com/elvith-de/89107061661e001df659d7a7d413092b
# CHANGE THESE VALUES $my_instance="https://feddit.de" # e.g. https://feddit.nl $target_file = "C:\Temp\export.json" ######################################################## #Ask user for username and password $credentials = Get-Credential -Message "Logindata for $my_instance" -Title "Login" $my_username= $credentials.UserName $my_password= $credentials.GetNetworkCredential().Password # Lemmy API version $API="api/v3" # Login function Get-AuthToken() { $end_point="user/login" $json_data= @{ "username_or_email" = $my_username; "password" = $my_password } | ConvertTo-Json $url="$my_instance/$API/$end_point" (Invoke-RestMethod -Headers @{"Content-Type" = "application/json"} -Body $json_data -Method Post -Uri $url).JWT } # Get userdata as JSON function Get-UserData() { $end_point="user/export_settings" $url="$my_instance/$API/$end_point" Invoke-RestMethod -Headers @{"Authorization"="Bearer $($JWT)"} -Method Get -Uri $url } $JWT= Get-AuthToken Write-Host "Got JWT Token: $JWT" Write-Host "Exporting data to $target_file" Get-UserData | ConvertTo-Json | Out-File -FilePath $target_file