Sauvegarde et restauration des favoris
-
Hello,
Comme beaucoup d'entre vous, j'aime bien faire et défaire ma borne, tester des nouveaux "packs" et à chaque fois, je me tapais la sélection de mes favoris, notés précieusement sur un papier.Mais bon, à la longue, ça devient fastidieux, donc j'ai écrit un programme en python pour gérer ça
Pour ceux qui veulent pas installer python, je pourrais le compiler avec Cx_freeze, mais certains préféreront avoir le source (les virus, tout ça, je suis parano aussi :D)
Donc voilà comment ça fonctionne :
Vous créez un répertoire temporaire sur votre pc, vous y mettez le programme
Ensuite vous l'appelez avec la commande
python recalbox_fav.py \recalbox\share\roms backup
Il va vous créer un sous répertoire pour chacun des systèmes, et créer dedans un fichier favoris.txt avec les jeux que vous aviez sélectionné dans chaque gamelistEnsuite vous bidouillez votre recalbox, rasez tout, etc, bref...
pour restaurer vos favoris, vous lancez la commande
python recalbox_fav.py \recalbox\share\roms restoreLe programme lit chaque gamelist distante si vous avez un fichier favoris.txt en local, et compare les deux.
Ensuite il ajoute ou modifie la section <favorite> de chaque jeu que vous aviez sélectionné si il le trouve dans la gamelist
Enfin il écrit la gamelist.xml résultat en local, dans le sous-répertoire concernéJe précise en local parce que mon programme n'écrit rien sur le share, vous pouvez même le lancer sur une copie locale de votre carte SD ça marche aussi. Bref, c'est safe, je fais du readonly sur les listes)
Ensuite il ne vous reste plus qu'à copier chaque gamelist.xml créée dans le répertoire correspondant de votre recalbox à la place de l'ancienne, et redémarrer emulationstation pour voir vos favoris chéris
Voili voilou
J'ai mis ça sur le site PasteBin pour que ça vous conserve les indentations
Je voulais mettre le lien ici, mais je reçoit l'erreur suivante du forum :
ERROR
Post content was flagged as spam by Akismet.comedit : alors bon... https, pastebin point com slash mndqY8ks
lol -
@ftagn92 euh ok mais pourquoi ne pas juste sauvegarder les gamelist.xml ?
-
@ftagn92 python marche sur recalbox
-
@voljega Parce que tu mets pas forcément les mêmes packs de roms deux fois de suite donc si tu dois te palucher tous tes favoris parmis une collection différence ou entre deux scraps de test c'est barbant
@substring Je sais bien, mais l'idée c'était de faire ça depuis le pc pour ne manipuler que le share, pas de faire se connecter l'utilisateur lambda en ssh pour lancer des scripts
Avoir les favoris perdus au milieu de gamelists de 10 kilomètres c'est pas toujours pratique
Et puis j'ai déjà vu passer la demande plusieurs fois donc comme je savais pas quoi faire cette nuit -
@ftagn92 Awesome!!!
Tu pourrais faire une version qui va écrire direct dans les gamelists plutôt que créer de nouveaux fichiers?
@Substring intégration dans ES?
-
@supernature2k Bah en fait c'était mon idée première, mais je me suis dit que c'était le meilleur moyen de m'attirer les foudres du public si je pétait une gamelist d'un malheureux qui avait pas de sauvegarde à cause d'un pépin réseau ou n'importe quoi d'autre
Là je fait une gamelist modifiée en local, à charge pour toi d'écraser celle du partage réseau de recalbox, ceinture et bretelles
-
@ftagn92 said in Sauvegarde et restauration des favoris:
@voljega Parce que tu mets pas forcément les mêmes packs de roms deux fois de suite donc si tu dois te palucher tous tes favoris parmis une collection différence ou entre deux scraps de test c'est barbant
Je vois pas trop l'intérêt de changer de packs de roms sur un même système si elle te convient.
Accessoirement comment tu vas le trouver ton favori si entre deux packs différents ta rom change de nom voire de nom scrappé ? -
@supernature2k said in Sauvegarde et restauration des favoris:
@Substring intégration dans ES?
Non aucun intérêt.
-
@voljega Bin peu importe la raison, ça peut être tester un rom pack 32gb, puis un 64gb ou un autre, va savoir
Tester un mode de scrap différent, ou même un site de scap différent ?Ou bien lors de la release 17.12.01 de recalbox, ou fba_libretro a changé de version de rompack 0.2.97.39 à 0.2.97.42, il a fallu rescraper si je dis pas de bétise...
Quand j'ai demandé pourquoi j'avais perdu mes favoris c'est là qu'on m'a expliqué qu'ils étaient dans chaque gamelist
Quand j'ai demandé s'il était possible de les sauvegarder, on m'a aimablement fait comprendre que je pouvais le faire à la main et que oh hein, une petite liste sur un papier c'est pas la mort à resaisirDonc comme on est jamais mieux servi que par soi même j'ai fait le programme, et j'en fait profiter ceux qui y voient un intérêt
Pour ta dernière question, le programme fait au mieux, si il me manque un ou deux favoris sur 200 je vais pas pleurer
-
@ftagn92 said in Sauvegarde et restauration des favoris:
Ou bien lors de la release 17.12.01 de recalbox, ou fba_libretro a changé de version de rompack 0.2.97.39 à 0.2.97.42, il a fallu rescraper si je dis pas de bétise...
Euh non absolument pas besoin de rescraper dans ce cas précis
-
@voljega Bon c'était un autre cas alors je sais plus faudrait que je retrouve mais est-ce vraiment important...
-
@voljega C'est utile en cas de re-scrap par exemple
-
Tiens, autre exemple "tordu"
Je suis en train d'installer la legendary 128gb de retro vers le Futur, ils ont fait un super boulot de tri, etc, je vais pas casser leurs gamelist en les écrasant avec les miennes
Je suis en train d'enrichir mon programme pour qu'il me backup aussi les hidden, playcount, lastplayed de ma recalbox actuelle, c'est juste quelques lignes de code en plus.
Avec ma fonction restore, je les injecterai dans la legendary (les ronchons me dirons "pas tous, ils ont sûrement des gamelist spéciales pour les collections") et je pourrais retrouver les tris (nombre de parties jouées, etc) avec mon historique ^^
-
@ftagn92 si tout est basé sur un nom de fichier, c'est very risky
-
Le programme ne fait rien si il trouve pas de correspondance à l'étape "restore", il traite que les répertoires qui ont le même nom que ceux qu'il a traité à l'étape "backup" dans le répertoire/roms/, et dans les gamelist.xml qu'il traite idem, il ne touche que les roms qui ont le même nom entre les deux étapes
Si la rom n'existe pas, bah il passe à la suivante, on aura juste moins de favoris qu'espéréFranchement j'ai du mal a voir ce qui peut être risky si tu as un cas pratique je suis preneur
En revanche je suis curieux de savoir comment réagit recalbox quand ya des roms en double dans la même gamelist, j'ai eu le cas dans un pack snes "trouvé je n'sais où" , ya des sections <game></game> en double, même jeu, même rom
Je saurais pas te dire si c'est un vieux recalbox qui a fait le scrap ou un programme tiers genre universal scraper, ça vient du net, je m'en sert de jeu d'essai, mais quelle section est mise à jour et laquelle est lue au chargement des menus, est-ce que les jeux apparaissent en double a l'écran ? mystère. En tout cas pour chaque doublon, y'en a une avec un played, l'autre est vierge
-
@ftagn92 le nom d'un fichier n'est pas fiable, encore moins le hash de l'archive. Seul le hash du fichier est fiable
-
Bon j'ai tenu compte de vos remarques (à part le j'vois pas l'interêt :D)
Le programme sauve au choix les favoris, les playcount, les lastplayed et les status hidden, enfin n'importe quelle combinaison de ces 4 sections en fait
La comparaison des roms se fait aussi au choix, sur le nom de la rom ou sur le MD5 calculé dessus pendant le backup (si elle est dézippée, sinon sur le zip mais c'est moins fiable comme dit SubString), comme ça vous avez le choix aussi
Il restaure aussi ce que vous voulez, tout ou partie de ce que vous avez sauvegardé
Et enfin en option il copie le résultat directement sur la recalbox, en renommant les anciennes gamelist avec un timestamp
Par défaut il fait tout en local, rien sur la recalbox
Voilà ça brosse large ^^
-
Salut
Intéressant la sauvegarde des favoris
Vous n'auriez pas un tuto vidéo ?
Je ne connais pas python... -
Video je sais pas si j'aurai le temps, mais un tuto screenshot je vais voir
-
Ca serait super