⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 torrentutil.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 4 页
字号:

			public void run(DownloadManager dms[])
			{
				if (dms.length > 0)
					new TrackerChangerWindow(composite.getDisplay(), dms);
			}

			
			{
				composite = composite1;
				super(x0);
			}
		});
		itemChangeTracker.setEnabled(changeUrl);
		MenuItem itemEditTracker = new MenuItem(menuTracker, 8);
		Messages.setLanguageText(itemEditTracker, "MyTorrentsView.menu.editTracker");
		Utils.setMenuItemImage(itemEditTracker, "edit_trackers");
		itemEditTracker.addListener(13, new DMTask(dms) {

			public void run(DownloadManager dms[])
			{
				Map same_map = new HashMap();
				DownloadManager arr$[] = dms;
				int len$ = arr$.length;
				for (int i$ = 0; i$ < len$; i$++)
				{
					DownloadManager dm = arr$[i$];
					TOTorrent torrent = dm.getTorrent();
					if (torrent == null)
						continue;
					List group = TorrentUtils.announceGroupsToList(torrent);
					String str = "";
					for (Iterator i$ = group.iterator(); i$.hasNext();)
					{
						List l = (List)i$.next();
						str = (new StringBuilder()).append(str).append("[[").toString();
						Iterator i$ = l.iterator();
						while (i$.hasNext()) 
						{
							String s = (String)i$.next();
							str = (new StringBuilder()).append(str).append(s).append(", ").toString();
						}
					}

					List dl = (List)same_map.get(str);
					if (dl == null)
					{
						dl = new ArrayList();
						same_map.put(str, dl);
					}
					dl.add(dm);
				}

				final List set;
				List group;
				for (Iterator i$ = same_map.values().iterator(); i$.hasNext(); new MultiTrackerEditor(null, group, new TrackerEditorListener() {

			final List val$set;
			final 8 this$0;

			public void trackersChanged(String str, String str2, List group)
			{
				Iterator i$ = set.iterator();
				do
				{
					if (!i$.hasNext())
						break;
					DownloadManager dm = (DownloadManager)i$.next();
					TOTorrent torrent = dm.getTorrent();
					TorrentUtils.listToAnnounceGroups(group, torrent);
					try
					{
						TorrentUtils.writeToFile(torrent);
					}
					catch (Throwable e)
					{
						Debug.printStackTrace(e);
					}
					if (dm.getTrackerClient() != null)
						dm.getTrackerClient().resetTrackerUrl(true);
				} while (true);
			}

					
					{
						this$0 = 8.this;
						set = list;
						super();
					}
		}, true))
				{
					set = (List)i$.next();
					TOTorrent torrent = ((DownloadManager)set.get(0)).getTorrent();
					group = TorrentUtils.announceGroupsToList(torrent);
				}

			}

		});
		itemEditTracker.setEnabled(hasSelection);
		MenuItem itemManualUpdate = new MenuItem(menuTracker, 8);
		Messages.setLanguageText(itemManualUpdate, "GeneralView.label.trackerurlupdate");
		itemManualUpdate.addListener(13, new DMTask(dms) {

			public void run(DownloadManager dm)
			{
				dm.requestTrackerAnnounce(false);
			}

		});
		itemManualUpdate.setEnabled(manualUpdate);
		boolean scrape_enabled = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Enable");
		boolean scrape_stopped = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Stopped Enable");
		boolean manualScrape = !scrape_enabled || !scrape_stopped && allStopped;
		MenuItem itemManualScrape = new MenuItem(menuTracker, 8);
		Messages.setLanguageText(itemManualScrape, "GeneralView.label.trackerscrapeupdate");
		itemManualScrape.addListener(13, new DMTask(dms, true, true) {

			public void run(DownloadManager dm)
			{
				dm.requestTrackerScrape(true);
			}

		});
		itemManualScrape.setEnabled(manualScrape);
		MenuItem itemFiles = new MenuItem(menuAdvanced, 64);
		Messages.setLanguageText(itemFiles, "ConfigView.section.files");
		Menu menuFiles = new Menu(composite.getShell(), 4);
		itemFiles.setMenu(menuFiles);
		MenuItem itemFileMoveData = new MenuItem(menuFiles, 8);
		Messages.setLanguageText(itemFileMoveData, "MyTorrentsView.menu.movedata");
		itemFileMoveData.addListener(13, new DMTask(dms, composite) {

			final Composite val$composite;

			public void run(DownloadManager dms[])
			{
				if (dms != null && dms.length > 0)
				{
					DirectoryDialog dd = new DirectoryDialog(composite.getShell());
					dd.setFilterPath(TorrentOpener.getFilterPathData());
					dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
					String path = dd.open();
					if (path != null)
					{
						TorrentOpener.setFilterPathData(path);
						File target = new File(path);
						for (int i = 0; i < dms.length; i++)
							try
							{
								dms[i].moveDataFiles(target);
							}
							catch (Throwable e)
							{
								Logger.log(new LogAlert(dms[i], true, "Download data move operation failed", e));
							}

					}
				}
			}

			
			{
				composite = composite1;
				super(x0);
			}
		});
		itemFileMoveData.setEnabled(fileMove);
		MenuItem itemFileMoveTorrent = new MenuItem(menuFiles, 8);
		Messages.setLanguageText(itemFileMoveTorrent, "MyTorrentsView.menu.movetorrent");
		itemFileMoveTorrent.addListener(13, new DMTask(dms, composite) {

			final Composite val$composite;

			public void run(DownloadManager dms[])
			{
				if (dms != null && dms.length > 0)
				{
					DirectoryDialog dd = new DirectoryDialog(composite.getShell());
					String filter_path = TorrentOpener.getFilterPathTorrent();
					if (filter_path == null || filter_path.trim().length() == 0)
						filter_path = (new File(dms[0].getTorrentFileName())).getParent();
					dd.setFilterPath(filter_path);
					dd.setText(MessageText.getString("MyTorrentsView.menu.movedata.dialog"));
					String path = dd.open();
					if (path != null)
					{
						File target = new File(path);
						TorrentOpener.setFilterPathTorrent(target.toString());
						for (int i = 0; i < dms.length; i++)
							try
							{
								dms[i].moveTorrentFile(target);
							}
							catch (Throwable e)
							{
								Logger.log(new LogAlert(dms[i], true, "Download torrent move operation failed", e));
							}

					}
				}
			}

			
			{
				composite = composite1;
				super(x0);
			}
		});
		itemFileMoveTorrent.setEnabled(fileMove);
		MenuItem itemCheckFilesExist = new MenuItem(menuFiles, 8);
		Messages.setLanguageText(itemCheckFilesExist, "MyTorrentsView.menu.checkfilesexist");
		itemCheckFilesExist.addListener(13, new DMTask(dms) {

			public void run(DownloadManager dm)
			{
				dm.filesExist(true);
			}

		});
		MenuItem itemFileRescan = new MenuItem(menuFiles, 32);
		Messages.setLanguageText(itemFileRescan, "MyTorrentsView.menu.rescanfile");
		itemFileRescan.addListener(13, new DMTask(dms, itemFileRescan) {

			final MenuItem val$itemFileRescan;

			public void run(DownloadManager dm)
			{
				dm.getDownloadState().setFlag(2L, itemFileRescan.getSelection());
			}

			
			{
				itemFileRescan = menuitem;
				super(x0);
			}
		});
		itemFileRescan.setSelection(allScanSelected);
		itemFileRescan.setEnabled(fileRescan);
		MenuItem itemFileClearResume = new MenuItem(menuFiles, 8);
		Messages.setLanguageText(itemFileClearResume, "MyTorrentsView.menu.clear_resume_data");
		itemFileClearResume.addListener(13, new DMTask(dms) {

			public void run(DownloadManager dm)
			{
				dm.getDownloadState().clearResumeData();
			}

		});
		itemFileClearResume.setEnabled(allStopped);
		MenuItem itemRename = new MenuItem(menuAdvanced, 64);
		Messages.setLanguageText(itemRename, "MyTorrentsView.menu.rename");
		itemRename.setEnabled(hasSelection);
		Menu menuRename = new Menu(composite.getShell(), 4);
		itemRename.setMenu(menuRename);
		DownloadManager first_selected = dms.length != 0 ? dms[0] : null;
		MenuItem itemRenameDisplayed = new MenuItem(menuRename, 64);
		Messages.setLanguageText(itemRenameDisplayed, "MyTorrentsView.menu.rename.displayed");
		itemRenameDisplayed.setEnabled(hasSelection);
		if (itemRenameDisplayed.isEnabled())
		{
			itemRenameDisplayed.setData("suggested_text", first_selected.getDisplayName());
			itemRenameDisplayed.setData("display_name", Boolean.TRUE);
			itemRenameDisplayed.setData("save_name", Boolean.FALSE);
			itemRenameDisplayed.setData("rename_all", Boolean.FALSE);
			itemRenameDisplayed.setData("msg_key", "displayed");
		}
		MenuItem itemRenameSavePath = new MenuItem(menuRename, 64);
		Messages.setLanguageText(itemRenameSavePath, "MyTorrentsView.menu.rename.save_path");
		itemRenameSavePath.setEnabled(fileMove && dms.length == 1);
		if (itemRenameSavePath.isEnabled())
		{
			itemRenameSavePath.setData("suggested_text", first_selected.getAbsoluteSaveLocation().getName());
			itemRenameSavePath.setData("display_name", Boolean.FALSE);
			itemRenameSavePath.setData("save_name", Boolean.TRUE);
			itemRenameSavePath.setData("rename_all", Boolean.FALSE);
			itemRenameSavePath.setData("msg_key", "save_path");
		}
		MenuItem itemRenameBoth = new MenuItem(menuRename, 64);
		Messages.setLanguageText(itemRenameBoth, "MyTorrentsView.menu.rename.displayed_and_save_path");
		itemRenameBoth.setEnabled(fileMove && dms.length == 1);
		if (itemRenameBoth.isEnabled())
		{
			itemRenameBoth.setData("suggested_text", first_selected.getAbsoluteSaveLocation().getName());
			itemRenameBoth.setData("display_name", Boolean.TRUE);
			itemRenameBoth.setData("save_name", Boolean.TRUE);
			itemRenameBoth.setData("msg_key", "displayed_and_save_path");
			itemRenameBoth.setData("rename_all", Boolean.FALSE);
		}
		Listener rename_listener = new Listener(composite, dms) {

			final Composite val$composite;
			final DownloadManager val$dms[];

			public void handleEvent(Event event)
			{
				MenuItem mi = (MenuItem)event.widget;
				String suggested = (String)mi.getData("suggested_text");
				final boolean rename_all = ((Boolean)mi.getData("rename_all")).booleanValue();
				final boolean change_displayed_name = ((Boolean)mi.getData("display_name")).booleanValue();
				boolean change_save_name = ((Boolean)mi.getData("save_name")).booleanValue();
				String msg_key_prefix = (new StringBuilder()).append("MyTorrentsView.menu.rename.").append((String)mi.getData("msg_key")).append(".enter.").toString();
				SimpleTextEntryWindow text_entry = new SimpleTextEntryWindow(composite.getDisplay());
				text_entry.setTitle((new StringBuilder()).append(msg_key_prefix).append("title").toString());
				text_entry.setMessages(new String[] {
					(new StringBuilder()).append(msg_key_prefix).append("message").toString(), (new StringBuilder()).append(msg_key_prefix).append("message.2").toString()
				});
				text_entry.setPreenteredText(suggested, false);
				text_entry.prompt();
				if (text_entry.hasSubmittedInput())
				{
					String value = text_entry.getSubmittedInput();
					final String value_to_set = value.length() != 0 ? value : null;
					DMTask task = new DMTask(change_save_name) {

						final boolean val$rename_all;
						final String val$value_to_set;
						final boolean val$change_displayed_name;
						final boolean val$change_save_name;
						final 16 this$0;

						public void run(DownloadManager dm)
						{
							if (rename_all)
								try
								{
									dm.rename(value_to_set);
								}
								catch (Exception e)
								{
									Logger.log(new LogAlert(dm, true, "Download data rename operation failed", e));
								}
							if (change_displayed_name)
								dm.getDownloadState().setDisplayName(value_to_set);
							if (change_save_name)
								try
								{
									dm.renameDownload(value_to_set != null ? value_to_set : dm.getDisplayName());
								}
								catch (Exception e)
								{
									Logger.log(new LogAlert(dm, true, "Download data rename operation failed", e));
								}
						}

					
					{
						this$0 = 16.this;
						rename_all = flag;
						value_to_set = s;
						change_displayed_name = flag1;
						change_save_name = flag2;
						super(x0);
					}
					};
					task.go();
				}
			}

			
			{
				composite = composite1;
				dms = adownloadmanager;
				super();
			}
		};
		itemRenameDisplayed.addListener(13, rename_listener);
		itemRenameSavePath.addListener(13, rename_listener);
		itemRenameBoth.addListener(13, rename_listener);
		if (userMode > 0)
		{
			MenuItem itemExport = new MenuItem(menuAdvanced, 64);
			Messages.setLanguageText(itemExport, "MyTorrentsView.menu.exportmenu");
			Utils.setMenuItemImage(itemExport, "export");
			itemExport.setEnabled(hasSelection);
			Menu menuExport = new Menu(composite.getShell(), 4);
			itemExport.setMenu(menuExport);
			MenuItem itemExportXML = new MenuItem(menuExport, 8);
			Messages.setLanguageText(itemExportXML, "MyTorrentsView.menu.export");
			itemExportXML.addListener(13, new DMTask(dms, azureus_core, itemExportXML) {

				final AzureusCore val$azureus_core;
				final MenuItem val$itemExportXML;

				public void run(DownloadManager dms[])
				{
					DownloadManager dm = dms[0];
					if (dm != null)
						new ExportTorrentWizard(azureus_core, itemExportXML.getDisplay(), dm);
				}

			
			{
				azureus_core = azureuscore;
				itemExportXML = menuitem;
				super(x0);
			}
			});
			MenuItem itemExportTorrent = new MenuItem(menuExport, 8);
			Messages.setLanguageText(itemExportTorrent, "MyTorrentsView.menu.exporttorrent");
			itemExportTorrent.addListener(13, new DMTask(dms, composite) {

				final Composite val$composite;

				public void run(DownloadManager dms[])
				{
					File destinations[];
					int i;
					destinations = new File[dms.length];
					if (dms.length == 1)
					{
						FileDialog fd = new FileDialog(composite.getShell(), 8192);
						fd.setFileName(dms[0].getTorrentFileName());
						String path = fd.open();
						if (path == null)
							return;
						destinations[0] = new File(path);
					} else
					{
						DirectoryDialog dd = new DirectoryDialog(composite.getShell(), 8192);
						String path = dd.open();
						if (path == null)
							return;
						for (int i = 0; i < dms.length; i++)
							destinations[i] = new File(path, (new File(dms[i].getTorrentFileName())).getName());

					}
					i = 0;
_L2:
					File target;
					if (i >= dms.length)
						break MISSING_BLOCK_LABEL_338;
					target = destinations[i];
					if (!target.exists())
						break MISSING_BLOCK_LABEL_268;
					MessageBox mb = new MessageBox(composite.getShell(), 196);
					mb.setText(MessageText.getString("exportTorrentWizard.process.outputfileexists.title"));
					mb.setMessage((new StringBuilder()).append(MessageText.getString("exportTorrentWizard.process.outputfileexists.message")).append("\n").append(destinations[i].getName()).toString());
					int result = mb.open();
					if (result == 128)
						return;
					if (!target.delete())
						throw new Exception("Failed to delete file");
					TorrentUtils.copyToFile(dms[i].getDownloadState().getTorrent(), target);
					TOTorrent dest = TOTorrentFactory.deserialiseFromBEncodedFile(target);
					dest.removeAdditionalProperties();
					dest.serialiseToBEncodedFile(target);
					i++;
					if (true) goto _L2; else goto _L1
_L1:
					Throwable e;
					e;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -