1) Un script pour refaire ma collection :
En fait quand je modifie les règles du script "gamelistpower" comme présenté ici, je dois changer d'abord en SSH le contenu du fichier rules_gensh.xml donc j'ai fait un script que je peux lancer juste après et qui me relance EmulationStation, parce que je ne veux pas le faire à partir du menu collections, je trouve cela risqué si on fait une fausse manip ;-(.
Donc le voici:
#!/bin/sh #authorize read/write mount -o remount,rw / #go to gamelistpower cd /recalbox/scripts/gamelistpower #launch to recreate collection (if neww roms or if you have new rules from rules_gensh.xml) python gamelistpower.py generate_sh info #restart emulationstation (it's enough, no need to reboot in this case ;-) curl -H "Content-Type: application/json" -X POST "http://recalbox/post?action=reboot-es"
Dans mon cas, je ne reboot pas, pas besoin, je relance EmulationStation via le manager de Recalbox en appelant l'API.
2) J'ai aussi un script encore plus simple pour sauvegarder dans le cloud manuellement avant d'attendre la fin d'un reboot ou d'une extinction du raspberry pi :
edit 23-02-2020: j'ai amélioré le script pour mieux gérer si pas de connexion internet (j'essai 3 fois ;-)
#!/bin/bash # check that is online to run the first sync command COUNTER=0 while [ $COUNTER -lt 3 ] do #echo "loop counter is equal to: $COUNTER" if [[ "$(ping -c 1 8.8.8.8 | grep ' 0% packet loss' )" == "" ]]; then echo "Internet isn't present" else echo "Internet is present" # Run the command that will execute only once at the start /usr/bin/rclone copy /recalbox/share/saves/ remote:saves & wait $! break fi COUNTER=$[$COUNTER+1] done
J'ai fait ces script pour les appeler avec Alexa via ma domotique Jeedom à terme. Ainsi je peux les utiliser avec jeedom et en utilisant le plugin SSH :
Il faudra un jour que je vous explique comment je fais cela mais cela sera dans un autre article, désolé :-(
3) Un script python de "test" maintenant pour savoir le nombre de joueur max pour un jeu lancé ;-)... vous verrez plus tard que c'est bien utile pour mon projet de panel arcade 4 joueurs...
A mettre dans le repertoire /recalbox/scripts/gamelistpower pour bénéficier de cette librairie de script ;-) :
#!/usr/bin/env python #IMPORT STD--------------------------------------------------------------------- import os.path import sys import time import shutil import argparse from os.path import basename, splitext from threading import Thread #IMPORT NORDICPOWER------------------------------------------------------------ from glplib import * #CONSTANTS--------------------------------------------------------------------- VERSION='0.0.1 BETA 26/01/2020' SOURCE_NAME='BozoTheGeek' #------------------------------------------------------------------------------ #---------------------------------------- MAIN -------------------------------- #------------------------------------------------------------------------------ def main(): #Init Log logger=Logger.logr #if args.log==ARG_LOG_DEBUG: Logger.setLevel(logging.DEBUG) #elif args.log==ARG_LOG_INFO: # Logger.setLevel(logging.INFO) #elif args.log==ARG_LOG_ERROR: # Logger.setLevel(logging.ERROR) Logger.add_handler_console() #Chargement XML avec MiniDom :-< #test 1 OK #System = 'mame' #FullRomLocation = '/recalbox/share/roms/mame/outrun.zip' #test 2 OK #System = 'n64' #FullRomLocation = '/recalbox/share/roms/n64/Legend\ of\ Zelda,\ The\ -\ Majora\'s\ Mask.z64' #test 3 OK #System = 'megadrive' #FullRomLocation = '/recalbox/share/roms/megadrive/Sonic\ \&\ Knuckles\ \(World\).zip' #test 4 OK #System = 'snes' #FullRomLocation = '/recalbox/share/roms/snes/Tiny\ Toon\ Adventures\ -\ Wild\ \&\ Wacky\ Sports\ \(Europe\)\ \(Beta\).zip' #test 5 OK #System = 'neogeo' #FullRomLocation = '/recalbox/share/roms/neogeo/mslug3b6.zip' RomsDirectory = FullRomLocation.split(System)[0] Rom = FullRomLocation.split(System)[1] #to remove \ if necessary Rom = Rom.replace("\\","") gamesList = GamesList() gamesList.import_xml_file(RomsDirectory + System + os.sep + NOM_GAMELIST_XML,True) logger.info('OK, file imported:' + RomsDirectory + System + os.sep + NOM_GAMELIST_XML) logger.info('Rom to find : ' + Rom) game = gamesList.search_game_by_path ('.' + Rom) logger.info('file found, the game name is :' + game.name) logger.info('the max number of player is : ' + game.players[-1]) sys.exit(0) #--------------------------------------------------------------------------------------------------- if __name__ == '__main__': main()
Et voilà, c'est tout pour ce soir, mais bientôt je vais vous expliquer quoi faire de ce script qui compte les joueurs ... (teaser ;-)
Enjoy !
Aucun commentaire :
Enregistrer un commentaire