Page 1 sur 1

Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 2:21 pm
par OseF
Bonjour tout le monde,

j'ai chercher en vain une solution à mon problème. N'ayant au final que très peu de compétences en informatique, je viens ici vous exposer mon problème.

Je veux créer un script greasemonkey pour améliorer l'interface d'un jeu par navigateur (script complètement légal). J'ai déjà le code mais je n'arrive pas à copier/coller ce dernier dans le script créé. Un message d'erreur apparait, me mettant en garde contre les copier/coller de ligne de codes qui pourrait me nuire. C'est une protection qui est par défaut sur Firefox. J'ai donc cherché comment enlever cette protection.

J'ai donc créé un fichier user.js et j'ai rentré quelques lignes de codes trouvés sur un tuto afin de faire accepter le copier/coller, peine perdue. J'ai lu ici et là que cela pouvait venir d'un problème d'erreur donc j'ai réinitialisé mon firefox, tout réinstallé et réessayé, sans succès encore.

J'ai même essayé par deux fois de récrire les lignes de codes directement dans le script mais n'étant pas familiarisé avec aucun langage informatique, j'ai vite confondu les "." et "," par exemple et j'ai perdu un temps fou !

Est-ce que quelqu'un pourrait me guider pas à pas dans cette démarche ou mieux vaut-il simplement que j'envoie à une âme charitable les lignes de codes en question afin de créer directement le script ?

Je vous souhaite une bonne journée et j'espère avoir des réponses à mon petit problème.

EDIT : Je me suis aperçu que le fichier créé "user.js" était en fait "user.js.txt", du coup en le renommant correctement j'obtiens bien un fichier script. Par contre cela ne résoud pas mon problème et je ne peux plus ouvrir mon fichier (erreur : objet attendu ; code : 800A138F ; source : erreur d'exécution Microsoft JScript).

Je me permets de vous mettre ici ce que contient mon fichier user.js :

ser_pref("capability.policy.policynames", "allowclipboard" );

user_pref("capability.policy.allowclipboard.sites", "http://forum.apocalypsis.org" );

user_pref("capability.policy.allowclipboard.Clipboard.cutcopy", "allAccess" );
user_pref("capability.policy.allowclipboard.Clipboard.paste", "allAccess" );

Et voici maintenant les lignes de codes que j'aimerais copier/coller dans mon script :

// ==UserScript==
// @name Apocalypsis
// @namespace Apo
// @description Booste l'interface d'Apo qui craint
// @include http://www.apocalypsis.org/commerce/cb_price
// @include http://www.apocalypsis.org/commerce/cb_price?*
// @version 1
// @grant GM_xmlhttpRequest
// ==/UserScript==
//***********************************************
// a function that loads jQuery and calls a callback function when jQuery has finished loading
function addJQuery(callback) {
var script = document.createElement('script');
script.setAttribute('src', '//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js');
script.addEventListener('load', function () {
var script = document.createElement('script');
script.textContent = 'window.jQ=jQuery.noConflict(true);(' + callback.toString() + ')();';
document.body.appendChild(script);
}, false);
document.body.appendChild(script);
}
// the guts of this userscript

function main() {
// Note, jQ replaces $ to avoid conflicts.

function parseCB() {
jQ('.subbox_sub p:nth-of-type(2)') .attr('style', 'color: orange !important');
jQ('.subbox_sub p:nth-of-type(3)') .attr('style', 'color: yellow !important');
var location = jQ('.subbox_sub p:nth-of-type(2)') .text() .replace(new RegExp('.*\\(([0-9.]+)\\)[,.].*', 'g'), '$1');
var taxe = jQ('.subbox_sub p:nth-of-type(3)') .text() .replace(new RegExp('.*([0-9]+).*', 'g'), '$1');
console.log('location [' + location + ']');
console.log('Taxe [' + taxe + ']');
jQ('.subbox_sub .listing') .attr('style', 'color: rose !important');
var prices = [];
jQ('.subbox_sub .listing > tbody > tr') .each(function (index) {
var data = {};
item = jQ(this) .find('td:nth-of-type(1)') .html();
price = jQ(this) .find('td:nth-of-type(2)') .text() .replace(/ /g, '');
tax = jQ(this) .find('td:nth-of-type(3)') .text() .replace(/ /g, '');
stock = jQ(this) .find('td:nth-of-type(6)') .text() .replace(/ /g, '');
jQ(this) .find('td:nth-of-type(6)') .html('<span style="font-family: monospace">'+stock+'</span>');

data['item'] = item;
data['price'] = price;
data['tax'] = tax;
data['stock'] = stock;
data['location'] = location;
prices.push(data);
});
jQ.ajax({
type: "POST",
url : "http://127.0.0.1:8101/prices",
data: JSON.stringify(prices),
timeout: 5000,
crossDomain: true
});
}
// Quickway to find out if script is active

jQ('.subbox.footer .subbox_sub a') .attr('style', 'color: red !important');
jQ('.subbox.footer .subbox_sub a') .text('Apo Engine active');

// hide button
jQ('form[name=cb_prices] :input[type=submit]') .hide();
// and replace it by a hidden field
jQ('form[name=cb_prices]') .append('<input type="hidden" value="Voir" name="e_sub">');
// remove closed CB
//jQ(':input[name=z_cb] option[value="3_4_0_1_4"]').remove();

// submit on selection change
jQ('form[name=cb_prices] :input[name=z_cb]') .on('change', function (event) {
jQ('form[name=cb_prices]') .submit();
});
parseCB();
}
// load jQuery and execute the main function

addJQuery(main);
//***********************************************

Voilà, je vous remercie d'avance ! ;) ;) ;)

Re: Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 5:08 pm
par live_ocin
À une époque, ton sujet aurait trouvé son public (une époque lointaine où on vivait dangereusement, et il fallait pas se faire pécho quand on faisait une cartographie de la galaxie), mais maintenant je sais pas trop... Perso je peux pas t'aider, je suis une quiche en développement, et j'utilise pas de scripts.

Re: Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 5:12 pm
par Oz
"parfaitement légal"
Ca je sais pas, ce que je constate c'est que ca donne un outil pour faire gagner un temps monstrueux à un guildien qui souhaite spéculer.

Donc légal, je sais pas, mais fair play, je ne crois pas.
...
... mais je m'emporte et j'oublie que dieux³ s'en fiche un peu beaucoup.
Dès que j'ai le temps, je m'en vais apprendre le kung fu et adapter ca à la partie stratégie. Histoire de donner un avantage "légal" au fainéant que je suis.

Bon jeu ?

Re: Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 5:45 pm
par OseF
Bah, j'ai repris les lignes de codes sur le forum externe d'apo donc bon...

Re: Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 9:01 pm
par Oz
Et parce que des moyens sont disponibles, c'est une excuse pour un comportement anti fair play?
Je ne crois pas.

Re: Aidez moi pour faire mon script siouplé

Publié : mer. avr. 15, 2015 9:20 pm
par OseF
De toute façon je suis une bille en informatique, donc le problème est résolu...

L'interface des cb est vraiment...fastidieuse :(

Re: Aidez moi pour faire mon script siouplé

Publié : jeu. avr. 16, 2015 8:53 pm
par Jc
Oz a écrit :"parfaitement légal"
Ca je sais pas, ce que je constate c'est que ca donne un outil pour faire gagner un temps monstrueux à un guildien qui souhaite spéculer.

Donc légal, je sais pas, mais fair play, je ne crois pas.
...
... mais je m'emporte et j'oublie que dieux³ s'en fiche un peu beaucoup.
Dès que j'ai le temps, je m'en vais apprendre le kung fu et adapter ca à la partie stratégie. Histoire de donner un avantage "légal" au fainéant que je suis.

Bon jeu ?
Alors, je suis l'auteur dudit script (ou ça y ressemble foutrement). Script qui soulève ici un noir vent de réprobation. Je viens donc donner mon opinion sur sa genèse et le pourquoi de son écriture.

Je travaille dans l'informatique, et que ce soit coté HTML, CSS, ou Javascript, je me débrouille très correctement. J'ai créé pour Apo un certain nombre de skins que j'ai mis à disposition pour améliorer une interface vieillissante, hélas sans que ces modifications ne soient pérennisées dans Apo. Les scripts que j'ai créés répondent à la raison fondamentale pour laquelle je fais de l'informatique : simplifier la vie des utilisateurs. Autant déléguer aux machines ce qu'elles savent faire mieux que moi. Voici ce que des scripts de mon cru peuvent ou pourraient faire :
  • supprimer des listes déroulantes les systèmes non-ouverts (par exemple pour la CB).
  • mémoriser/cartographier un système (propriétaires, flottes) que vous regardez.
  • corriger le format des chiffres (séparateurs de milliers) qui rendent pénible le copier/coller.
  • mettre une valeur par défaut dans certains choix
  • etc.
J'ai toujours considéré que ces scripts n'étaient pas des automates : ils ne déclenchent pas d'action tout seuls, ne chargent pas de page. Ils se contentent de faire un boulot fastidieux à ma place, comme recopier des chiffre dans un excel pour faire des graphes (maintenant ça existe directement dans l'interface).

De ma compréhension, les scripts "interdits" sont justement la catégorie des "automates" : ceux qui font des actions sans personne derrière l'écran, et qui sont donc détectés par le mécanisme anti-scripts.

Certains considèreront qu'il s'agit d'une justification facile : en effet, améliorer l'interface facilite la vie et donc fait gagner du temps. C'est donc effectivement un avantage. Personnellement, je préfèrerais partager ces scripts et ce temps gagné avec tous, et ce n'est pas faute de l'avoir suggéré et proposé aux dieux (OseF m'a contacté sur le sujet en lisant un de mes posts sur le forum, donc je n'en ai jamais fait un secret). En attendant, je ne suis pas assez maso pour m'infliger le supplice d'une interface que je peux rectifier et adapter à mon besoin. Et le temps gagné au lieu de cliquer partout en pestant contre l'interface, je le passe à faire un post RP à l'AG, par exemple.