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 gamelist

    Ensuite vous bidouillez votre recalbox, rasez tout, etc, bref...

    pour restaurer vos favoris, vous lancez la commande
    python recalbox_fav.py \recalbox\share\roms restore

    Le 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.com

    edit : alors bon... https, pastebin point com slash mndqY8ks
    lol


  • Themer

    @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 :D


  • Moderator
    Team
    Creator
    Moderator

    @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 ;)


  • Themer

    @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 à resaisir

    Donc 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 :/


  • Themer

    @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...


  • Moderator
    Team
    Creator
    Moderator

    @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


Log in to reply
 

Want to support us ?

Join us on :

264
Online

28949
Users

14692
Topics

110945
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.