Accueil > > > MULTI-DEBRID
MULTI-DEBRID
Information sur la source
Description
Voici un exemple appliqué d'utilisation des fonctions réseau de flash. Cette application permet de générer des liens premiums megaupload. Concrètement, le flash transmet une variable post à une page php qui lui renvoi un page HTML (merci au concept browser de mouloudikhaled). Cette page HTML est retaillée afin de récupérer l'url du lien sous forme de chaine base 64, chaine décodée grâce au script de blackwizard Utilisation: -> Générer des liens - Rentrer les URL megaupload dans la partie gauche séparer par un retour à la ligne - Sélectionner un serveur en cliquant dans la case blanche à gauche de celui-ci dans la datagrid - Cliquer sur GO - Les liens générer s'afficheront à droite -> Exporter une liste de serveurs - Cliquer sur le bouton export en haut à droite - Les données exportées seront dans le cadre de droite -> Importer une liste de serveur - Insérer les données à importer dans le cadre de gauche - Cliquer sur le bouton import en haut à droite -> Ajouter un serveur - Cliquer sur nouveau serveur - Un champ est ajouté à la fin de la datagrid -> Supprimer un serveur - Sélectionner le serveur en cliquant sur la cellule vide à gauche - Cliquer sur supprimer serveur -> Mode débug Ce mode vous permet de déterminer le slice d'une page si débug est cocher, c'est le code HTML de la page qui sera affichée dans le cadre de droite. Elle sera tronquée d'autant de caractère que le nombre inscrit dans le champ slice. Le slice d'un serveur doit tronquer au début de la chaine 64 (une suite de caractère de la forme aHR0cDovL3d3dzEyMC(...)25jbGljaz0i) !!!!!! Attention, vous aurez sans doute besoin d'autoriser le programme flash à communiquer a l'extérieur !!!!!!
Source
- /*
- ------------------------------------------
- ---------------Multi-debrid---------------
- ---------------par-remy2501---------------
- ------------------------------------------
- */
-
- //On vide (pour être sur) les 2 grand champ de texte
- resultat.text = "";
- lien.text = "";
- // On affecte les données initial à la datagrid
- my_dg.dataProvider = [{nom:"fast-débrid 1", url:"http://87.98.151.200/", slice:3723, post:'q'}, {nom:"fast-débrid 2", url:"http://87.98.159.117/apache2-default/", slice:3722, post:'q'}, {nom:"mega-débrid 1", url:"http://r24285.ovh.net/debrideur.php", slice:1499, post:'link'}, {nom:"mega-débrid 2", url:"http://r25019.ovh.net/debrideur.php", slice:1499, post:'link'}, {nom:"mega-débrid 3", url:"http://r24386.ovh.net/debrideur.php", slice:1499, post:'link'}];
- // On crée la fonction servant à rajouter une collone vide
- // afin de permettre de sélectionner les lignes facillement
- // Elle ajoute une collone vide puis les redimentionne
- function addblankcolone () {
- my_dg.addColumnAt (0," ");
- my_dg.getColumnAt (0).editable = false;
- my_dg.getColumnAt (0).width = 25;
- my_dg.getColumnAt (1).width = 100;
- my_dg.getColumnAt (2).width = 225;
- my_dg.getColumnAt (3).width = 50;
- }
- // On utilise la fonction que l'on vien de créer
- addblankcolone ();
- // On crée un objet loadVars qui servira à réceptionner les données (la page html)
- var chargeur_lv:LoadVars = new LoadVars ();
- // On préferera onData à onLoad car il permet de récupérer les données non traitées
- chargeur_lv.onData = function (src:String):Void {
- // On effectue le traitement que si le chargement a réussi (que si on a des données)
- if (src != undefined) {
- // Si on a enclenché le mode débug
- if (btn_debug.selected) {
- // On utilise le slice du champ de texte
- temp1 = src.slice (saisie_slice.text);
- } else {
- // Sinon on utilise le slice de la datagrid
- temp1 = src.slice (slice);
- }
- // On décompose le traitement de la chaine
- // On split afin de récupérer la chaine base64
- temp2 = temp1.split ("&");
- temp3 = temp2[0];
- // On décode la-dîte chaine
- temp4 = decode (temp3);
- // On split encore afin de supprimer le "onclick ="
- temp5 = temp4.split ('"');
- temp6 = temp5[0];
- // Si on a enclenché le mode débug
- if (btn_debug.selected) {
- // On affiche la page juste slicée
- _root.resultat.text += temp3 + "\r";
- } else {
- // Sinon on affiche le lien
- _root.resultat.text += temp6 + "\r";
- }
- // On incrémente la variable servant à charger les lien un par un
- i++;
- // On informe l'utilisateur de l'état du processus
- etat.text = 'Lien(s) généré(s)';
- // On (ré)appelle la fonction de chargement
- charge ();
- } else {
- // Sinon on informe l'utilisateur qu'il y a eu une erreur
- etat.text = 'Erreur';
- }
- };
-
- // On crée un objet loadVars qui servira à stocker les données post à envoyer
- var send_lv:LoadVars = new LoadVars ();
- // On déclare la fonction servant à charger les liens
- function charge () {
- // On ne lance le chargement d'un lien que si il existe !!
- if (my_array[i] != undefined) {
- // On affecte le lien en paramètre qui sera transmis en post sous le nom défini dans la datagrid
- send_lv[parampost] = my_array[i];
- // On informe l'utilisateur de l'état du processus
- etat.text = "Chargement du lien premium de " + my_array[i] ;
- // On lance le chargement
- send_lv.sendAndLoad (serv,chargeur_lv,"POST");
- }
- }
- // La fonction servant à décoder une chaine en base64 (vois la source de blackwizard pour plus d'info)
- function decode (opString:String):String {
- opString != undefined ? str = opString : str = str;
- var base64s:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- var bits, decOut = '', i:Number = 0;
- for (i = 0; i < str.length; i += 4) {
- bits = (base64s.indexOf (str.charAt (i)) & 0xff) << 18 | (base64s.indexOf (str.charAt (i + 1)) & 0xff) << 12 | (base64s.indexOf (str.charAt (i + 2)) & 0xff) << 6 | base64s.indexOf (str.charAt (i + 3)) & 0xff;
- decOut += String.fromCharCode ((bits & 0xff0000) >> 16, (bits & 0xff00) >> 8, bits & 0xff);
- }
- if (str.charCodeAt (i - 2) == 61) {
- return decOut.substring (0, decOut.length - 2);
- } else if (str.charCodeAt (i - 1) == 61) {
- return decOut.substring (0, decOut.length - 1);
- } else {
- return decOut.substring (0, decOut.length - 2);
- }
- }
- // Définition de action en cas de click sur le bouton go
- btn_go.onRelease = function () {
- // Si l'utilisateur n'a pas selectionner de serveur, on l'en informe
- if (my_dg.selectedIndex == undefined) {
- etat.text = 'Vous n\'avez pas sélectionner de serveur !!';
- } else {
- // Sinon
- // On (re)met la variable i à 0
- i = 0;
- // On stock l'url du serveur
- serv = my_dg.selectedItem.url;
- // On stock le slice propre au serveur
- slice = my_dg.selectedItem.slice;
- // On stock le nom du post propre au serveur
- parampost = my_dg.selectedItem.post;
- // On separe les liens
- my_array = lien.text.split ('\r');
- // On informe l'utilisateur de l'état du processus
- etat.text = "Split ok";
- // On lance le chagement
- charge ();
- }
- };
- // Si l'utilisateur click sur ce bouton, le champ de droite est vidé
- btn_efface_resultat.onRelease = function () {
- resultat.text = "";
- };
- // Si l'utilisateur click sur ce bouton, le champ de gauche est vidé
- btn_efface_lien.onRelease = function () {
- lien.text = "";
- };
- // Pour l'ajout d'une nouvelle ligne
- btn_new.onRelease = function () {
- // On supprime la colonne vide
- my_dg.removeColumnAt (0);
- // On crée un objet "vide"
- var item_obj:Object = {nom:"", url:"", slice:"", post:""};
- // On l'ajoute
- my_dg.addItem (item_obj);
- // On remet la colone vide
- addblankcolone ();
- };
- // Si l'utilisateur clique que ce bouton, on supprime l'élément selectionné
- btn_suppr.onRelease = function () {
- my_dg.removeItemAt (my_dg.selectedIndex);
- };
- // Pour l'import
- btn_import.onRelease = function () {
- // On supprime la colonne vide
- my_dg.removeColumnAt (0);
- // On supprime toute les données
- my_dg.removeAll ();
- // On sépare les données
- temparray = lien.text.split ("\r");
- // On resépare chaque élément et on l'ajoute a la datagrid
- for (l = 0; l < temparray.length; l++) {
- temptemparray = temparray[l].split ("|");
- var item_obj:Object = {nom:temptemparray[0], url:temptemparray[1], slice:temptemparray[2], post:temptemparray[3]};
- my_dg.addItem (item_obj);
- }
- // On rajoute la colone vide
- addblankcolone ();
- // On informe l'utilisateur de l'état du processus
- etat.text = "Import terminé";
- };
- // Pour l'export
- btn_export.onRelease = function () {
- // On vide le champ de droite
- resultat.text = "";
- // On concatène les donnée de la datagrid
- for (k = 0; k < my_dg.dataProvider.length; k++) {
- resultat.text += my_dg.dataProvider[k].nom + "|" + my_dg.dataProvider[k].url + "|" + my_dg.dataProvider[k].slice + "|" + my_dg.dataProvider[k].post + "\r";
- }
- // On informe l'utilisateur de l'état du processus
- etat.text = "Export terminé";
- };
/*
------------------------------------------
---------------Multi-debrid---------------
---------------par-remy2501---------------
------------------------------------------
*/
//On vide (pour être sur) les 2 grand champ de texte
resultat.text = "";
lien.text = "";
// On affecte les données initial à la datagrid
my_dg.dataProvider = [{nom:"fast-débrid 1", url:"http://87.98.151.200/", slice:3723, post:'q'}, {nom:"fast-débrid 2", url:"http://87.98.159.117/apache2-default/", slice:3722, post:'q'}, {nom:"mega-débrid 1", url:"http://r24285.ovh.net/debrideur.php", slice:1499, post:'link'}, {nom:"mega-débrid 2", url:"http://r25019.ovh.net/debrideur.php", slice:1499, post:'link'}, {nom:"mega-débrid 3", url:"http://r24386.ovh.net/debrideur.php", slice:1499, post:'link'}];
// On crée la fonction servant à rajouter une collone vide
// afin de permettre de sélectionner les lignes facillement
// Elle ajoute une collone vide puis les redimentionne
function addblankcolone () {
my_dg.addColumnAt (0," ");
my_dg.getColumnAt (0).editable = false;
my_dg.getColumnAt (0).width = 25;
my_dg.getColumnAt (1).width = 100;
my_dg.getColumnAt (2).width = 225;
my_dg.getColumnAt (3).width = 50;
}
// On utilise la fonction que l'on vien de créer
addblankcolone ();
// On crée un objet loadVars qui servira à réceptionner les données (la page html)
var chargeur_lv:LoadVars = new LoadVars ();
// On préferera onData à onLoad car il permet de récupérer les données non traitées
chargeur_lv.onData = function (src:String):Void {
// On effectue le traitement que si le chargement a réussi (que si on a des données)
if (src != undefined) {
// Si on a enclenché le mode débug
if (btn_debug.selected) {
// On utilise le slice du champ de texte
temp1 = src.slice (saisie_slice.text);
} else {
// Sinon on utilise le slice de la datagrid
temp1 = src.slice (slice);
}
// On décompose le traitement de la chaine
// On split afin de récupérer la chaine base64
temp2 = temp1.split ("&");
temp3 = temp2[0];
// On décode la-dîte chaine
temp4 = decode (temp3);
// On split encore afin de supprimer le "onclick ="
temp5 = temp4.split ('"');
temp6 = temp5[0];
// Si on a enclenché le mode débug
if (btn_debug.selected) {
// On affiche la page juste slicée
_root.resultat.text += temp3 + "\r";
} else {
// Sinon on affiche le lien
_root.resultat.text += temp6 + "\r";
}
// On incrémente la variable servant à charger les lien un par un
i++;
// On informe l'utilisateur de l'état du processus
etat.text = 'Lien(s) généré(s)';
// On (ré)appelle la fonction de chargement
charge ();
} else {
// Sinon on informe l'utilisateur qu'il y a eu une erreur
etat.text = 'Erreur';
}
};
// On crée un objet loadVars qui servira à stocker les données post à envoyer
var send_lv:LoadVars = new LoadVars ();
// On déclare la fonction servant à charger les liens
function charge () {
// On ne lance le chargement d'un lien que si il existe !!
if (my_array[i] != undefined) {
// On affecte le lien en paramètre qui sera transmis en post sous le nom défini dans la datagrid
send_lv[parampost] = my_array[i];
// On informe l'utilisateur de l'état du processus
etat.text = "Chargement du lien premium de " + my_array[i] ;
// On lance le chargement
send_lv.sendAndLoad (serv,chargeur_lv,"POST");
}
}
// La fonction servant à décoder une chaine en base64 (vois la source de blackwizard pour plus d'info)
function decode (opString:String):String {
opString != undefined ? str = opString : str = str;
var base64s:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var bits, decOut = '', i:Number = 0;
for (i = 0; i < str.length; i += 4) {
bits = (base64s.indexOf (str.charAt (i)) & 0xff) << 18 | (base64s.indexOf (str.charAt (i + 1)) & 0xff) << 12 | (base64s.indexOf (str.charAt (i + 2)) & 0xff) << 6 | base64s.indexOf (str.charAt (i + 3)) & 0xff;
decOut += String.fromCharCode ((bits & 0xff0000) >> 16, (bits & 0xff00) >> 8, bits & 0xff);
}
if (str.charCodeAt (i - 2) == 61) {
return decOut.substring (0, decOut.length - 2);
} else if (str.charCodeAt (i - 1) == 61) {
return decOut.substring (0, decOut.length - 1);
} else {
return decOut.substring (0, decOut.length - 2);
}
}
// Définition de action en cas de click sur le bouton go
btn_go.onRelease = function () {
// Si l'utilisateur n'a pas selectionner de serveur, on l'en informe
if (my_dg.selectedIndex == undefined) {
etat.text = 'Vous n\'avez pas sélectionner de serveur !!';
} else {
// Sinon
// On (re)met la variable i à 0
i = 0;
// On stock l'url du serveur
serv = my_dg.selectedItem.url;
// On stock le slice propre au serveur
slice = my_dg.selectedItem.slice;
// On stock le nom du post propre au serveur
parampost = my_dg.selectedItem.post;
// On separe les liens
my_array = lien.text.split ('\r');
// On informe l'utilisateur de l'état du processus
etat.text = "Split ok";
// On lance le chagement
charge ();
}
};
// Si l'utilisateur click sur ce bouton, le champ de droite est vidé
btn_efface_resultat.onRelease = function () {
resultat.text = "";
};
// Si l'utilisateur click sur ce bouton, le champ de gauche est vidé
btn_efface_lien.onRelease = function () {
lien.text = "";
};
// Pour l'ajout d'une nouvelle ligne
btn_new.onRelease = function () {
// On supprime la colonne vide
my_dg.removeColumnAt (0);
// On crée un objet "vide"
var item_obj:Object = {nom:"", url:"", slice:"", post:""};
// On l'ajoute
my_dg.addItem (item_obj);
// On remet la colone vide
addblankcolone ();
};
// Si l'utilisateur clique que ce bouton, on supprime l'élément selectionné
btn_suppr.onRelease = function () {
my_dg.removeItemAt (my_dg.selectedIndex);
};
// Pour l'import
btn_import.onRelease = function () {
// On supprime la colonne vide
my_dg.removeColumnAt (0);
// On supprime toute les données
my_dg.removeAll ();
// On sépare les données
temparray = lien.text.split ("\r");
// On resépare chaque élément et on l'ajoute a la datagrid
for (l = 0; l < temparray.length; l++) {
temptemparray = temparray[l].split ("|");
var item_obj:Object = {nom:temptemparray[0], url:temptemparray[1], slice:temptemparray[2], post:temptemparray[3]};
my_dg.addItem (item_obj);
}
// On rajoute la colone vide
addblankcolone ();
// On informe l'utilisateur de l'état du processus
etat.text = "Import terminé";
};
// Pour l'export
btn_export.onRelease = function () {
// On vide le champ de droite
resultat.text = "";
// On concatène les donnée de la datagrid
for (k = 0; k < my_dg.dataProvider.length; k++) {
resultat.text += my_dg.dataProvider[k].nom + "|" + my_dg.dataProvider[k].url + "|" + my_dg.dataProvider[k].slice + "|" + my_dg.dataProvider[k].post + "\r";
}
// On informe l'utilisateur de l'état du processus
etat.text = "Export terminé";
};
Historique
- 01 juillet 2009 22:24:54 :
- Changement du titre a cause du fait que ce nom existe déja pour un site
Code commenté !!
- 01 juillet 2009 22:27:37 :
- petit oubli !!
- 01 juillet 2009 22:56:33 :
- Correction des fautes d'orthographe et rajout du zip avec les commentaire
- 01 juillet 2009 23:06:37 :
- Correction des fautes d'orthographe et rajout du zip avec les commentaire
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
webcam en reseaux [ par milouse95620 ]
Bonjour, j ai un petit soucis pour connecter ma webcam. Si je lance mon flash a partir du serveur internet, il me demande l'autorisation en local pour
Comment connaître le nom d'une classe en AS2 ? [ par jcsydney ]
BonjourJ'ai un fichier AS2, et dans le constructeur je voudrais que l'instance créé accède au nom de la classe qui est en train de la créer. Comment f
personnaliser un datagrid [ par lilyvirus ]
Bonjour, J'aimerai en savoir un peu pls sur les datagrid!Si vous avez des liens, merci de me les faires parvenirPour le moment je charge ma base de do
Problème affichage animation sur internet [ par mousstik13 ]
Bonjour à tous, tout d'abord je tiens à préciser que je suis un pur débutant.Voilà j'ai "créer" une anim pour mon site web le problème est que lorque
mise a jour du plugin flash 8 [ par perfect_board ]
salut cava j'ai un reseau locale avec un serveur web et j'utilise des animation flash dans le site hébergé dans mon serveur web chaque fois que j'ut
applet et sécurité [ par magicsmacks ]
Bonjour, Voilà je dois rendre un devoir à la fac sous la forme d'un CD. J'ai créé pour cela un site internet qui se lance en autorun. Site auquel j'a
Quel serveur flash choisir ? [ par balvick ]
Bonjour,je voudrai me lancé dans une creation de chat avec des pti perso a dirigé.donc j'aurai besoin d'envoie x,y et du texte au serveur...mais j'ai
lecture SWF direct dans une form VB à partir d'un site internet [ par tchacm25 ]
Bonjour à tous,Est ce que quelqu'un aurait la solution pour lire dans une form visual basic une animation flash se trouvant sur un site internet avec
Jeux Multi joueurs et Serveur XML. [ par jcdc ]
Bonjour a tous. Après mettre bien amuser à réaliser des jeux flash classique, j'aimerais aujourd'hui augmenté mon niveau et m'attaquer à des jeux mult
problème chargement internet explorer [ par lefelinherbivore ]
Salut,sur ce site: http://fhbprojets.free.fr/alacarte/j'ai un problème de chargement qui n'arrive jamais à terme.J'ai installé une solution javaScript
|
Derniers Blogs
[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril SQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULLSQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULL par coq
Les fonctions d'agrégation comme MIN et MAX ignorent les valeurs NULL présentes dans le jeu de données sur lequel porte leur calcul, d'où le fameux message d'avertissement : Warning: Null value is eliminated by an aggregate or other SET operation...
Cliquez pour lire la suite de l'article par coq VOTEZ POUR WARNYGOVOTEZ POUR WARNYGO par Nicolas
La vidéo du projet Warnygo est disponible sur facebook et attend vos votes ! Pour rappel: Warnygo est une application Windows Phone 7 qui permet d'alerter tous utilisateurs inscrits qui se trouve dans la zone où se passe l'...
Cliquez pour lire la suite de l'article par Nicolas
Forum
POTENTIOMETREPOTENTIOMETRE par juledem
Cliquez pour lire la suite par juledem
Logiciels
Bureau de Gestion - ERP Devis Facturation (2.02)BUREAU DE GESTION - ERP DEVIS FACTURATION (2.02)
- Version gratuite du 10/06/2010
Le Bureau de Gestion est un logiciel dédié à la gestion de l'en...
Cliquez pour télécharger Bureau de Gestion - ERP Devis Facturation sDEVIS-FACTURES vlPRO (3.8.0)SDEVIS-FACTURES VLPRO (3.8.0)sDEVIS-FACTURES vlPRO a été mis au point pour permettre besoins des particuliers, créateurs, entr... Cliquez pour télécharger sDEVIS-FACTURES vlPRO LettresFaciles (5.6.0)LETTRESFACILES (5.6.0)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles MyPlanning 2010 (5.6.0)MYPLANNING 2010 (5.6.0)MyPlanning 2010 permet de créer des plannings sous la représentation de diagrammes. Plannings pré... Cliquez pour télécharger MyPlanning 2010 Emicsoft Mac DVD en iPad Convertisseur (3.1.16)EMICSOFT MAC DVD EN IPAD CONVERTISSEUR (3.1.16)Emicsoft Mac DVD en iPad Convertisseur, logiciel professionnel de convertir les fichiers DVD en i... Cliquez pour télécharger Emicsoft Mac DVD en iPad Convertisseur
|