Émulation CPC sur les pages du CPCWiki

En poursuivant la discussion à partir de CPC emulation added in-page for topics! :joystick: :

Le nouveau forum est super et cette fonctionnalité est excellente.

Je me demande si vous ajouteriez une fonctionnalité similaire au wiki également.

Sur l’ancien forum, j’avais évoqué cette idée ici : Website allowing you to play any disc image online J’ai réussi à faire fonctionner un site web qui lançait RVM en chargeant n’importe quelle image .DSK sur Internet, donc cette partie est assez simple.

Ce serait vraiment cool de pouvoir aller sur une page wiki comme WACCI issue 1 (October 1986) - CPCWiki et de charger l’image disque sans même avoir à la télécharger.

Oui, c’est possible, en créant une extension et une balise. Je ne me suis pas vraiment penché dessus, mais je pense savoir comment m’y prendre.

Cependant, cela ne sera d’aucune utilité tant que quelqu’un ne modifiera pas toutes les pages concernées pour y ajouter la balise de lancement. Je ne suis donc pas sûr que cela ait beaucoup de sens.

Je pense qu’il serait possible d’écrire une extension utilisant l’un des crochets (hooks) de MediaWiki pour modifier la façon dont tous les liens vers les fichiers .dsk sont affichés (peut-être uniquement pour les fichiers hébergés sur ifwiki.eu pour commencer).

Si vous optiez plutôt pour l’idée des balises, il serait probablement possible d’ajouter des balises à tous les liens d’images disque concernés en utilisant ReplaceText.

Ok, on dirait que tu t’y connais un peu en MW, c’est super, discutons-en ! :slight_smile:

À propos de ReplaceText : ça, c’est un non, non, nooOOoooon, non. Non. :joy: Si j’essaie de faire comme ça sur des milliers de pages, je vais me battre avec des regex (avec lesquelles j’entretiens une relation d’amour-haine) jusqu’à la nuit des temps. Certaines pages utilisent des infobox structurées ({{Infobox Game | disk = ...}}), d’autres utilisent de simples liens [[Media:game.dsk]], et d’autres encore renvoient vers des miroirs FTP externes ou des archives .zip. Impossible de tous les traiter sans introduire d’erreurs, sans compter que ça ajouterait une nouvelle révision dans la base de données pour absolument chaque page modifiée.

Par contre, concernant les hooks, ça m’a fait réfléchir. La détection automatique des liens est possible (même si je me doute que le cache du parseur de MediaWiki risquerait de rendre ça un peu délicat), mais je pense qu’on n’a même pas besoin d’un hook PHP. Ce qu’on pourrait faire, probablement, c’est ajouter un extrait de code JS dans MediaWiki:Common.js (ou même directement dans le thème ?), scanner le DOM à chaque chargement de page et, si un lien vers un fichier .dsk est trouvé, afficher un bouton [Play] juste à côté. C’est un peu ce que j’avais fait sur le forum aussi.

Je ne vais pas y toucher tout de suite, il faut que j’y réfléchisse et que je me penche un peu sur la personnalisation de MW d’abord. Si tu as des idées, dis-moi !

Et voilà, c’est fait !