begin process at 2010 09 03 07:27:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Multimédia

 > TELECHARGEUR DE JAQUETTES DE FILMS POUR DISQUES DUR MULTIMEDIA

TELECHARGEUR DE JAQUETTES DE FILMS POUR DISQUES DUR MULTIMEDIA


 Information sur la source

Note :
Aucune note
Catégorie :Multimédia Classé sous :scan, jaquette, allocine Niveau :Initié Date de création :18/07/2010 Date de mise à jour :19/07/2010 16:49:37 Vu / téléchargé :1 392 / 113

Auteur : zobyone

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

 Description

Cliquez pour voir la capture en taille normale
Ce petit logiciel permet de scanner tous les films en avi et mkv sur votre disque dur et télécharge les jaquettes correspondante sur allo ciné via l'Api du site. Si plusieurs résultats sont renvoyés, on sélectionneras le bon film via une form spécifique.

Apres, vous n'avez plus qu'à uploader sur votre disque dur Multimédia afin d'avoir un affichage en vignette.

L'interet du soft est de recuperer les films avec leurs noms brut
(ex : Pandorum.avi) et d'effectuer des traitements des chaines de caractère (je n'utilise pas de RegEx).

Mot Clef de coupure : Liste des mots ou l'on supprimer ce qu'il y a après une fois la chaine trouvée
Mot Clef a supprimer : Mots à supprimer du titre du film
Mot Clef discriminant : Mots qui évite de recenser le film

une fois le titre du film générer, j'interroge allocine pour récurer l'affiche et je la copie en la renommant avec le vrai nom du film
(ex : Pandorum.jpg)

L'intérêt de cette source réside la manipulation du fichier XML,le scan recursif de repertoires, le téléchargement de fichiers distant, le passage de variables d'une fenêtre à une autre.

J'ai développé ce code assez rapidement (1jour) et il reste perfectible, néanmoins, il est fonctionnel.

ATTENTION : Si vous scannez votre disque depuis la racine, votre antivirus vous empêcheras d'accéder a certain répertoires (quarantaine) et fera planter le code.

Source

  • using System;
  • using System.Collections.Generic;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Text;
  • using System.Windows.Forms;
  • using System.IO;
  • using System.Web;
  • using System.Net;
  • using System.Xml;
  • namespace movieJacket
  • {
  • public partial class Form1 : Form
  • {
  • public Form1()
  • {
  • InitializeComponent();
  • }
  • passvariable pvar;
  • private void button1_Click(object sender, EventArgs e)
  • {
  • pvar = new passvariable();
  • listBox1.Items.Clear();
  • listBox2.Items.Clear();
  • listBox3.Items.Clear();
  • if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  • {
  • textBox1.Text = folderBrowserDialog1.SelectedPath;
  • }
  • else
  • {
  • return;
  • }
  • DirSearch(textBox1.Text,"*.avi");
  • DirSearch(textBox1.Text, "*.mkv");
  • makeMovieName();
  • System.Threading.Thread.Sleep(1000);
  • if(MessageBox.Show("Start get All posters?","Get All Posters",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)== System.Windows.Forms.DialogResult.OK)
  • {
  • searchMovie();
  • }
  • }
  • private void DirSearch(string sDir,string pattern)
  • {
  • try
  • {
  • foreach (string f in Directory.GetFiles(sDir, pattern))
  • {
  • bool skipFile = false;
  • foreach (string item in listBox6.Items)
  • {
  • if (f.ToUpper().IndexOf(item.ToUpper()) != -1)
  • {
  • skipFile = true;
  • }
  • }
  • if (!skipFile)
  • {
  • listBox2.Items.Add(f.Substring(0, f.LastIndexOf(".")) + ".jpg");
  • listBox1.Items.Add(f.Substring(f.LastIndexOf("\\") + 1));
  • }
  • }
  • foreach (string d in Directory.GetDirectories(sDir))
  • {
  • DirSearch(d, pattern);
  • }
  • }
  • catch (System.Exception excpt)
  • {
  • MessageBox.Show(excpt.Message);
  • }
  • }
  • private void makeMovieName()
  • {
  • string newName = null;
  • int myIndex = 0;
  • foreach (string file in listBox1.Items)
  • {
  • newName = file.ToUpper();
  • newName = newName.Replace(".AVI", "");
  • newName = newName.Replace(".MKV", "");
  • foreach (string item in listBox4.Items)
  • {
  • if (newName.IndexOf(item) != -1)
  • {
  • int discriminator = newName.IndexOf(item);
  • newName = newName.Substring(0, discriminator);
  • }
  • }
  • foreach (string item in listBox5.Items)
  • {
  • newName = newName.Replace(item, "");
  • }
  • newName = newName.Replace(".", " ");
  • newName = newName.Replace("-", " ");
  • newName = newName.Replace("_", " ");
  • listBox3.Items.Add(newName);
  • if (File.Exists(listBox2.Items[myIndex].ToString()))
  • {
  • checkedListBox1.Items.Add(newName, true);
  • }
  • else
  • {
  • checkedListBox1.Items.Add(newName, false);
  • }
  • myIndex++;
  • }
  • }
  • private void searchMovie()
  • {
  • int myIndex = 0;
  • XmlDocument myXmlMovieInfo;
  • XmlElement myXmlElement;
  • XmlNodeList myXmlNodes;
  • progressBar1.Maximum = checkedListBox1.Items.Count - checkedListBox1.CheckedItems.Count;
  • int myCheckedItem = 1;
  • foreach (string movie in listBox3.Items)
  • {
  • if(!checkedListBox1.GetItemChecked(myIndex))
  • {
  • myXmlMovieInfo = new XmlDocument();
  • myXmlMovieInfo.LoadXml(getAllocineInfo(movie));
  • pvar.xmlDoc = myXmlMovieInfo;
  • myXmlElement = myXmlMovieInfo.DocumentElement;
  • myXmlNodes = myXmlElement.GetElementsByTagName("movie");
  • pvar.movieName = movie;
  • string movieNum= null;
  • if (myXmlNodes.Count >= 2)
  • {
  • Form askMovieForm = new askMovie(pvar);
  • if (askMovieForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  • {
  • movieNum = askMovieForm.Text;
  • foreach (XmlNode node in myXmlNodes)
  • {
  • string myImageUrl = null;
  • if (node.Attributes["code"].InnerText == movieNum)
  • {
  • try
  • {
  • myImageUrl = node["poster"].Attributes["href"].InnerText;
  • }
  • catch
  • {
  • myImageUrl = node["picture"].Attributes["href"].InnerText;
  • }
  • WebClient urlGrabber = new WebClient();
  • byte[] data = urlGrabber.DownloadData(myImageUrl);
  • FileStream fileStream = new FileStream(listBox2.Items[myIndex].ToString(), FileMode.Create);
  • fileStream.Write(data, 0, data.Length);
  • fileStream.Close();
  • checkedListBox1.SetItemChecked(myIndex,true);
  • }
  • }
  • }
  • }
  • else
  • {
  • foreach (XmlNode node in myXmlNodes)
  • {
  • string myImageUrl = null;
  • try
  • {
  • myImageUrl = node["poster"].Attributes["href"].InnerText;
  • WebClient urlGrabber = new WebClient();
  • byte[] data = urlGrabber.DownloadData(myImageUrl);
  • FileStream fileStream = new FileStream(listBox2.Items[myIndex].ToString(), FileMode.Create);
  • fileStream.Write(data, 0, data.Length);
  • fileStream.Close();
  • checkedListBox1.SetItemChecked(myIndex, true);
  • }
  • catch
  • {
  • }
  • }
  • }
  • progressBar1.Value = myCheckedItem;
  • myCheckedItem++;
  • }
  • myIndex++;
  • }
  • MessageBox.Show("Telechargement des Jaquettes Completé");
  • }
  • private string getAllocineInfo(string movie)
  • {
  • string alloCineUrl = "http://api.allocine.fr/xml/search?partner=4&q="+movie;
  • // used to build entire input
  • StringBuilder sb = new StringBuilder();
  • // used on each read operation
  • byte[] buf = new byte[8192];
  • // prepare the web page we will be asking for
  • HttpWebRequest request = (HttpWebRequest)
  • WebRequest.Create(alloCineUrl);
  • // execute the request
  • HttpWebResponse response = (HttpWebResponse)
  • request.GetResponse();
  • // we will read data via the response stream
  • Stream resStream = response.GetResponseStream();
  • string tempString = null;
  • int count = 0;
  • do
  • {
  • // fill the buffer with data
  • count = resStream.Read(buf, 0, buf.Length);
  • // make sure we read some data
  • if (count != 0)
  • {
  • // translate from bytes to ASCII text
  • tempString = Encoding.ASCII.GetString(buf, 0, count);
  • // continue building the string
  • sb.Append(tempString);
  • }
  • }
  • while (count > 0); // any more data to read?
  • // print out page source
  • return sb.ToString();
  • }
  • private void Form1_Load(object sender, EventArgs e)
  • {
  • List<string> lines = new List<string>();
  • // 2
  • // Use using StreamReader for disposing.
  • using (StreamReader r = new StreamReader(Application.StartupPath+"\\list1.txt"))
  • {
  • // 3
  • // Use while != null pattern for loop
  • string line;
  • while ((line = r.ReadLine()) != null)
  • {
  • listBox4.Items.Add(line);
  • }
  • }
  • using (StreamReader r = new StreamReader(Application.StartupPath + "\\list2.txt"))
  • {
  • // 3
  • // Use while != null pattern for loop
  • string line;
  • while ((line = r.ReadLine()) != null)
  • {
  • listBox5.Items.Add(line);
  • }
  • }
  • using (StreamReader r = new StreamReader(Application.StartupPath + "\\list3.txt"))
  • {
  • // 3
  • // Use while != null pattern for loop
  • string line;
  • while ((line = r.ReadLine()) != null)
  • {
  • listBox6.Items.Add(line);
  • }
  • }
  • }
  • }
  • }
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Web;
using System.Net;
using System.Xml;

namespace movieJacket
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        passvariable pvar;

        private void button1_Click(object sender, EventArgs e)
        {

            pvar = new passvariable();
            listBox1.Items.Clear();
            listBox2.Items.Clear();
            listBox3.Items.Clear();
            if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                textBox1.Text = folderBrowserDialog1.SelectedPath;
            }
            else
            {
                return;
            }

            DirSearch(textBox1.Text,"*.avi");
            DirSearch(textBox1.Text, "*.mkv");

           

            makeMovieName();
            

            System.Threading.Thread.Sleep(1000);
            if(MessageBox.Show("Start get All posters?","Get All Posters",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)== System.Windows.Forms.DialogResult.OK)
            {
                searchMovie();
            }
        }

        private void DirSearch(string sDir,string pattern)
        {
            try
            {
                foreach (string f in Directory.GetFiles(sDir, pattern))
                {
                    bool skipFile = false;
                    foreach (string item in listBox6.Items)
                    {
                        if (f.ToUpper().IndexOf(item.ToUpper()) != -1)
                        {
                            skipFile = true;
                        }
                    }

                    if (!skipFile)
                    {
                        listBox2.Items.Add(f.Substring(0, f.LastIndexOf(".")) + ".jpg");
                        listBox1.Items.Add(f.Substring(f.LastIndexOf("\\") + 1));
                     }
                }

                foreach (string d in Directory.GetDirectories(sDir))
                {
                    DirSearch(d, pattern);
                }
            }
            catch (System.Exception excpt)
            {
                MessageBox.Show(excpt.Message);
            }
        }


        private void makeMovieName()
        {
            string newName = null;
            int myIndex = 0;
            foreach (string file in listBox1.Items)
            {
                
                newName = file.ToUpper();
                newName = newName.Replace(".AVI", "");
                newName = newName.Replace(".MKV", "");

                foreach (string item in listBox4.Items)
                {
                    if (newName.IndexOf(item) != -1)
                    {
                        int discriminator = newName.IndexOf(item);
                        newName = newName.Substring(0, discriminator);
                    }
                }

                foreach (string item in listBox5.Items)
                {
                    newName = newName.Replace(item, "");
                }

                newName = newName.Replace(".", " ");
                newName = newName.Replace("-", " ");
                newName = newName.Replace("_", " ");
                listBox3.Items.Add(newName);
                if (File.Exists(listBox2.Items[myIndex].ToString()))
                {
                    checkedListBox1.Items.Add(newName, true);
                }
                else
                {
                    checkedListBox1.Items.Add(newName, false);
                }
            myIndex++;
            }
            
        }

        private void searchMovie()
        {
            int myIndex = 0;
            XmlDocument myXmlMovieInfo;
            XmlElement myXmlElement;
            XmlNodeList myXmlNodes;

            progressBar1.Maximum = checkedListBox1.Items.Count - checkedListBox1.CheckedItems.Count;

            int myCheckedItem = 1;
            foreach (string movie in listBox3.Items)
            {
                if(!checkedListBox1.GetItemChecked(myIndex))
                {
                    myXmlMovieInfo = new XmlDocument();
                
                    myXmlMovieInfo.LoadXml(getAllocineInfo(movie));
                    pvar.xmlDoc = myXmlMovieInfo;

                    myXmlElement = myXmlMovieInfo.DocumentElement;

                    myXmlNodes = myXmlElement.GetElementsByTagName("movie");


                    pvar.movieName = movie;
                    string movieNum= null;

                    if (myXmlNodes.Count >= 2)
                    {
                        Form askMovieForm = new askMovie(pvar);

                        if (askMovieForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            movieNum = askMovieForm.Text;

                            foreach (XmlNode node in myXmlNodes)
                            {
                                string myImageUrl = null;
                                if (node.Attributes["code"].InnerText == movieNum)
                                {
                                    try
                                    {
                                        myImageUrl = node["poster"].Attributes["href"].InnerText;
                                    }
                                    catch
                                    {
                                        myImageUrl = node["picture"].Attributes["href"].InnerText;
                                    }
                                    WebClient urlGrabber = new WebClient();
                                    byte[] data = urlGrabber.DownloadData(myImageUrl);
                                    FileStream fileStream = new FileStream(listBox2.Items[myIndex].ToString(), FileMode.Create);
                                    fileStream.Write(data, 0, data.Length);
                                    fileStream.Close();

                                    checkedListBox1.SetItemChecked(myIndex,true);
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (XmlNode node in myXmlNodes)
                        {
                            string myImageUrl = null;
                            try
                            {
                                myImageUrl = node["poster"].Attributes["href"].InnerText;
                                WebClient urlGrabber = new WebClient();
                                byte[] data = urlGrabber.DownloadData(myImageUrl);
                                FileStream fileStream = new FileStream(listBox2.Items[myIndex].ToString(), FileMode.Create);
                                fileStream.Write(data, 0, data.Length);
                                fileStream.Close();

                                checkedListBox1.SetItemChecked(myIndex, true);
                            }
                            catch
                            {
                            }
                        }
                    }
                    progressBar1.Value = myCheckedItem;
                    myCheckedItem++;
                }
                myIndex++;
            }

            MessageBox.Show("Telechargement des Jaquettes Completé");
        }

        private string getAllocineInfo(string movie)
        {
            string alloCineUrl = "http://api.allocine.fr/xml/search?partner=4&q="+movie;

            // used to build entire input
            StringBuilder sb = new StringBuilder();

            // used on each read operation
            byte[] buf = new byte[8192];

            // prepare the web page we will be asking for
            HttpWebRequest request = (HttpWebRequest)
                WebRequest.Create(alloCineUrl);

            // execute the request
            HttpWebResponse response = (HttpWebResponse)
                request.GetResponse();

            // we will read data via the response stream
            Stream resStream = response.GetResponseStream();

            string tempString = null;
            int count = 0;

            do
            {
                // fill the buffer with data
                count = resStream.Read(buf, 0, buf.Length);

                // make sure we read some data
                if (count != 0)
                {
                    // translate from bytes to ASCII text
                    tempString = Encoding.ASCII.GetString(buf, 0, count);

                    // continue building the string
                    sb.Append(tempString);
                }
            }
            while (count > 0); // any more data to read?

            // print out page source
            return sb.ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            List<string> lines = new List<string>();

            // 2
            // Use using StreamReader for disposing.
            using (StreamReader r = new StreamReader(Application.StartupPath+"\\list1.txt"))
            {
                // 3
                // Use while != null pattern for loop
                string line;
                while ((line = r.ReadLine()) != null)
                {
                    listBox4.Items.Add(line);
                }
            }
            using (StreamReader r = new StreamReader(Application.StartupPath + "\\list2.txt"))
            {
                // 3
                // Use while != null pattern for loop
                string line;
                while ((line = r.ReadLine()) != null)
                {
                    listBox5.Items.Add(line);
                }
            }
            using (StreamReader r = new StreamReader(Application.StartupPath + "\\list3.txt"))
            {
                // 3
                // Use while != null pattern for loop
                string line;
                while ((line = r.ReadLine()) != null)
                {
                    listBox6.Items.Add(line);
                }
            }

        }
    }
}


 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

19 juillet 2010 09:16:05 :
Correction de fautes d'orthographe

 Sources du même auteur

Source .NET (Dotnet) TIFF TO JPEG CONVERTEUR
Source .NET (Dotnet) COMPTE A REBOUR TRES SIMPLE
Source .NET (Dotnet) INTERNET EXPLORER AUTOMATION BY JULIEN LEMBO

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) UTILITAIRE ITUNE par zanzan
Source avec Zip REDIMENSION D'IMAGE EN C# par VinceMonkeyz
Source avec Zip Source avec une capture Source .NET (Dotnet) SOUND EDITOR - UN PETIT LOGICIEL DE DSP AUDIO par MaxSoldier
Source avec Zip Source avec une capture Source .NET (Dotnet) "SURFACE LIKE" EN SILVERLIGHT par Malkuth
Source avec Zip Source avec une capture Source .NET (Dotnet) LAMINE PLAYER par ouadjaout

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) MEDIA-COVER par Zaltez
Source avec Zip Source .NET (Dotnet) COVER PRINT par penchu

Commentaires et avis

Commentaire de zobyone le 18/07/2010 21:02:37

J'attends vos commentaires

PS : J'ai testé sous windows XP, mais pas sous vista et Seven. Je suis curieux de savoir si ca fonctionne

Commentaire de sandy340499 le 29/07/2010 17:01:17

J'dois être assez bête mais on en fait quoi de ce zip une fois dézipé.
QQ peut il éclairer ma lanterne

Commentaire de aL0001 le 01/08/2010 15:01:34

Testé sous Seven et ça fonctionne

Commentaire de zobyone le 09/08/2010 21:37:44

Salut sandy340499, Il faut compiler le code avec visual studio 2010

Commentaire de zobyone le 09/08/2010 21:38:09

Merci pour l'info aL0001

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Interroger Allocine [ par bigflo93 ] Salut a tous :) Voila, je voudrais faire un programme en C# afin de recuperer des infos de films sur le site Allocine.fr Donc je me demandais s'il ex scan template [ par aymen_jaa ] Salut à tous,Je viens d'aborder un projet de fin d'année qui consiste à prendre une application java(par exemple une application commercial) puis de f Ouvrir Excel dans un service. [ par Dr_shaman ] Bonjour ; J'ai une application qui scan un port du pc et qui attend une trame UDP ; si une trame contiens toutes les informations requise. J'ouvre l Scan de page intenet [ par meddy02 ] Salut à tous,Je souhaiterais créer un algo qui me permette de copie tous les liens (http, www....) dans une liste box.En gr Projet: application scan Ip [ par krisloren ] Dans le cadre d un stag il m aété confié de realiser une application ki scanne un reseau et donne toutes les adresses Ip et MAC des machines connectée intercepter un scan avec une douchette [ par nadowin ] Bonjour,Mon problème est simple : je suis sur un textbox, je scanne le code barre avec la douchette et je traite l'information, je mets le focus sur u Problème de threads [ par pbreaker ] Bonsoir, Voila pour être bref je developpe une petite appli pour mon telephone pour lire les flux RSS allociné bref tout vas bien pour la partie downl synchronisation entre thread [ par chm69 ] Bonjour,Je suis nouveau sur ce forum et je débute en C#.J'aimerais lancer un scan d'une image et qu'une progressbar  le temps du scan.J'ai trouvé pas Problème avec une douchette [ par marcgiraud ] Bonjour,Je cherche un moyen que quand je scanne un code Barre, Le code Barre se mette dans une textbox (la pas de soucis) et que cela valide la textbo scan d'un fichier texte [ par babaOrhumette ] Bonjour, Je me permets de créer un nouveau sujet car je ne trouve pas forcement ce qu'il me faudrait sur le web. J'espère ne pas m'être trompé de se


Nos sponsors


Sondage...

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 : 0,577 sec (4)

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