begin process at 2010 09 03 12:11:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > MULTI-DEBRID

MULTI-DEBRID


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :AS2, debrideur, datagrid, serveur, internet Niveau :Initié Date de création :30/06/2009 Date de mise à jour :01/07/2009 23:06:37 Vu / téléchargé :6 912 / 448

Auteur : remy2501

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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é";
};


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 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

Source avec Zip EXPOGEN AS3 VESION 0.8
Source avec Zip Source avec une capture MOTEUR DE SIMULATION DE LANCE D'OBJET

 Sources de la même categorie

Source avec Zip Source avec une capture MODE CONSOLE DE LINUX par tipharris
Source avec Zip Source avec une capture BREVET - POINT - MENTION par kekoune
Source avec Zip Source avec une capture MENU INTERACTIF SIMPLE par Aeos
Source avec Zip RÉCUPÉRER UNE VARIABLE DANS L'ADRESSE DIRECTEMENT DANS FLASH par sophia1118
Source avec Zip Source avec une capture GOOGLE MAPS ET GEOCODING DANS FLASH CS3 EN ACTIONSCRIPT 3 par nikolo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture EFFET D'EAU RÉALISTE - AS2 par Choumoumou
Source avec Zip MENU RETATION par habibcode
Source avec Zip DIAPORAMA AS2 par ahmedhrbdj
[AS2] DÉPLACER PAR CLICS UN RECTANGLE DANS UNE ZONE DÉLIMITÉ... par devilwu
Source avec Zip REDIMENSIONNEMENT PROPORTIONNEL D'UNE IMAGE par Orange73

Commentaires et avis

Commentaire de tonydanza le 01/07/2009 18:12:48

Salut,

ça sert a quoi ?

Commentaire de remy2501 le 01/07/2009 21:05:57

cette source comme indiqué dans la description est d'un point de vue théorique une illustration concrète des fonctionnalité réseau de flash et d'un point de vue plus matérialiste un générateur de lien megaupload ( des liens qui si il sont rentrés dans un accélérateur de téléchargement permettent d'utiliser tout le débit disponible (~500 Ko/s avec une freebox))

Ai-je répondu à ta question ?

Commentaire de smawell le 06/07/2009 01:24:55

Salut,
ça à l'air tres intéressant, mais j n'arrive pas à m'en servir.
j'ai "erreur" comme réponse et rien ne s'affiche dans liens généré.
Peux tu donner un exemple concret que l'on comprenne bien.
Merci

Commentaire de gusgusle le 08/10/2009 22:33:55

Idem pour moi j'ai test avec tout les serveur j'ai toujours "erreur"...
Dommage ton script avait l'air vraiment bien !

Commentaire de clems206 le 14/03/2010 21:10:45

Proxy je suppose pas a jour

 Ajouter un commentaire


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,030 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales