コード例 #1
0
        /*
         * public void AddTTHL(QueueEntry me)
         * {
         *  QueueEntry existing = FindExistingEntryForFileList(hub, username);
         *  if (existing == null)
         *  {
         *      QueueEntry entry = new QueueEntry();
         *      entry.Type = QueueEntry.EntryType.FileList;
         *      string temp_hub_address = hub.Address.Replace(":", "_");
         *      entry.OutputFilename = filelists_directory + "\\" + temp_hub_address + "-" + Base32.ToBase32String(Encoding.Default.GetBytes(username)) + ".xml.bz2";//TODO .. maybe changes needed here to incorporate other filelist formats
         *      entry.AddSource(new Queue.QueueEntry.Source(username, "", hub));
         *      lock (queue_lock)
         *      {
         *          items.Add(entry);
         *      }
         *      GrabEntry(entry);
         *      try
         *      {
         *          if (EntryAdded != null)
         *              EntryAdded(entry);
         *          if (EntriesChanged != null)
         *              EntriesChanged();
         *      }
         *      catch (Exception ex)
         *      {
         *          Console.WriteLine("Exception occured in added event callback: " + ex.Message);
         *      }
         *
         *  }
         * }*/

        public void AddFileList(Hub hub, string username)
        {
            QueueEntry existing = FindExistingEntryForFileList(hub, username);

            if (existing == null)
            {
                QueueEntry entry = new QueueEntry();
                entry.Type = QueueEntry.EntryType.FileList;
                string temp_hub_address = hub.Address.Replace(":", "_");
                entry.OutputFilename = filelists_directory + "\\" + temp_hub_address + "-" + Base32.ToBase32String(Encoding.Default.GetBytes(username)) + ".xml.bz2";//TODO .. maybe changes needed here to incorporate other filelist formats
                entry.AddSource(new Queue.QueueEntry.Source(username, "", hub));
                lock (queue_lock)
                {
                    items.Add(entry);
                }
                GrabEntry(entry);
                try
                {
                    if (EntryAdded != null)
                    {
                        EntryAdded(entry);
                    }
                    if (EntriesChanged != null)
                    {
                        EntriesChanged();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception occured in added event callback: " + ex.Message);
                }
            }
        }
コード例 #2
0
        public void AddSearchResult(SearchResults.SearchResult result)
        {
            if (result.IsFile)
            {
                QueueEntry existing = FindExistingEntryForSearchResult(result);
                if (existing != null)
                {//This should be a deprecated case.. never ever be called again :-)
                 //lock (queue_lock)
                 //{
                    existing.AddSource(new QueueEntry.Source(result.UserName, result.Filename, result.Hub));
                    //TODO source add event
                    //}
                    return;
                }
                QueueEntry entry = new QueueEntry();
                entry.Type           = QueueEntry.EntryType.File;
                entry.Filesize       = result.Filesize;
                entry.OutputFilename = download_directory + "\\" + System.IO.Path.GetFileName(result.Filename); //TODO add directory support somehow
                if (File.Exists(entry.OutputFilename))
                {                                                                                               //already some file existing with this name ... try a (i) at the end increment until file is not there
                    int    i             = 1;
                    string new_extension = Path.GetExtension(entry.OutputFilename);

                    string new_filename = Path.GetDirectoryName(entry.OutputFilename) + "\\" + Path.GetFileNameWithoutExtension(entry.OutputFilename) + "(" + i + ")" + new_extension;
                    while (File.Exists(new_filename))
                    {
                        i++;
                        new_filename = Path.GetDirectoryName(entry.OutputFilename) + "\\" + Path.GetFileNameWithoutExtension(entry.OutputFilename) + "(" + i + ")" + new_extension;
                    }
                    entry.OutputFilename = new_filename;
                }
                if (result.HasTTH)
                {
                    entry.TTH = result.TTH;
                }
                //if(result.IsHubResolved)
                entry.AddSource(new Queue.QueueEntry.Source(result.UserName, result.Filename, result.Hub));
                lock (queue_lock)
                {
                    items.Add(entry);
                }
                GrabEntry(entry);
                //Console.WriteLine("Queue Entry added: '"+entry.OutputFilename+"'");
                try
                {
                    if (EntryAdded != null)
                    {
                        EntryAdded(entry);
                    }
                    if (EntriesChanged != null)
                    {
                        EntriesChanged();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Exception occured in added event callback: " + ex.Message);
                }
            }
            //download_directory + "\\" +
        }