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
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|