use of com.biglybt.core.metasearch.Engine in project BiglyBT by BiglySoftware.
the class SearchUtils method addMenus.
public static void addMenus(Menu menu) {
final Menu template_menu = new Menu(menu.getShell(), SWT.DROP_DOWN);
MenuItem template_menu_item = new MenuItem(menu, SWT.CASCADE);
template_menu_item.setMenu(template_menu);
Messages.setLanguageText(template_menu_item, "Search.menu.engines");
template_menu.addMenuListener(new MenuAdapter() {
@Override
public void menuShown(MenuEvent e) {
for (MenuItem mi : template_menu.getItems()) {
mi.dispose();
}
MenuItem import_mi = new MenuItem(template_menu, SWT.PUSH);
Messages.setLanguageText(import_mi, "menu.import.json.from.clipboard");
import_mi.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
importFromClipboard();
}
});
new MenuItem(template_menu, SWT.SEPARATOR);
Engine[] engines = MetaSearchManagerFactory.getSingleton().getMetaSearch().getEngines(true, false);
Arrays.sort(engines, new Comparator<Engine>() {
@Override
public int compare(Engine o1, Engine o2) {
return (o1.getName().compareToIgnoreCase(o2.getName()));
}
});
for (int i = 0; i < engines.length; i++) {
final Engine engine = engines[i];
final Menu engine_menu = new Menu(template_menu.getShell(), SWT.DROP_DOWN);
MenuItem engine_menu_item = new MenuItem(template_menu, SWT.CASCADE);
engine_menu_item.setMenu(engine_menu);
engine_menu_item.setText(engine.getName());
addMenus(engine_menu, engine, false);
}
}
});
MenuBuildUtils.addChatMenu(menu, "label.chat", "Search Templates");
MenuItem itemExport = new MenuItem(menu, SWT.PUSH);
Messages.setLanguageText(itemExport, "search.export.all");
itemExport.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
exportAll();
}
});
}
use of com.biglybt.core.metasearch.Engine in project BiglyBT by BiglySoftware.
the class SearchUtils method showCreateSubscriptionDialog.
public static void showCreateSubscriptionDialog(final long engineID, final String searchTerm, final Map optionalFilters) {
final SkinnedDialog dialog = new SkinnedDialog("skin3_dlg_create_search_subscription", "shell", SWT.DIALOG_TRIM);
SWTSkin skin = dialog.getSkin();
final SWTSkinObjectTextbox tb = (SWTSkinObjectTextbox) skin.getSkinObject("sub-name");
final SWTSkinObjectCheckbox cbShare = (SWTSkinObjectCheckbox) skin.getSkinObject("sub-share");
final SWTSkinObjectCheckbox cbAutoDL = (SWTSkinObjectCheckbox) skin.getSkinObject("sub-autodl");
SWTSkinObject soEngineArea = skin.getSkinObject("sub-engine-area");
final SWTSkinObjectCombo soEngines = (SWTSkinObjectCombo) skin.getSkinObject("sub-engine");
if (tb == null || cbShare == null || cbAutoDL == null) {
return;
}
boolean hasEngineID = engineID >= 0;
soEngineArea.setVisible(!hasEngineID);
final Map<Integer, Engine> mapEngines = new HashMap<>();
if (!hasEngineID) {
Engine[] engines = MetaSearchManagerFactory.getSingleton().getMetaSearch().getEngines(true, false);
List<String> list = new ArrayList<>();
int pos = 0;
for (Engine engine : engines) {
mapEngines.put(pos++, engine);
list.add(engine.getName());
}
soEngines.setList(list.toArray(new String[list.size()]));
}
cbShare.setChecked(COConfigurationManager.getBooleanParameter("sub.sharing.default.checked"));
cbAutoDL.setChecked(COConfigurationManager.getBooleanParameter("sub.autodl.default.checked"));
SWTSkinObject soButtonArea = skin.getSkinObject("bottom-area");
if (soButtonArea instanceof SWTSkinObjectContainer) {
StandardButtonsArea buttonsArea = new StandardButtonsArea() {
// @see StandardButtonsArea#clicked(int)
@Override
protected void clicked(int buttonValue) {
if (buttonValue == SWT.OK) {
String name = tb.getText().trim();
boolean isShared = cbShare.isChecked();
boolean autoDL = cbAutoDL.isChecked();
long realEngineID = engineID;
if (engineID <= 0) {
int engineIndex = soEngines.getComboControl().getSelectionIndex();
if (engineIndex < 0) {
// TODO: Flicker combobox
return;
}
realEngineID = mapEngines.get(engineIndex).getId();
}
Map<String, Object> payload = new HashMap<>();
payload.put("engine_id", realEngineID);
payload.put("search_term", searchTerm);
Map<String, Object> mapSchedule = new HashMap<>();
mapSchedule.put("days", Collections.EMPTY_LIST);
// minutes
mapSchedule.put("interval", 120);
payload.put("schedule", mapSchedule);
Map<String, Object> mapOptions = new HashMap<>();
mapOptions.put("auto_dl", autoDL);
payload.put("options", mapOptions);
Map<String, Object> mapFilters = new HashMap<>();
if (optionalFilters != null) {
mapFilters.putAll(optionalFilters);
}
payload.put("filters", mapFilters);
try {
Subscription subs;
subs = SubscriptionManagerFactory.getSingleton().create(name, isShared, JSONUtils.encodeToJSON(payload));
subs.getHistory().setDetails(true, autoDL);
subs.requestAttention();
} catch (SubscriptionException e) {
}
}
dialog.close();
}
};
buttonsArea.setButtonIDs(new String[] { MessageText.getString("Button.add"), MessageText.getString("Button.cancel") });
buttonsArea.setButtonVals(new Integer[] { SWT.OK, SWT.CANCEL });
buttonsArea.swt_createButtons(((SWTSkinObjectContainer) soButtonArea).getComposite());
}
dialog.open();
}
use of com.biglybt.core.metasearch.Engine in project BiglyBT by BiglySoftware.
the class SubscriptionManagerUI method createMenus.
protected static void createMenus(final MenuManager menu_manager, final MenuCreator menu_creator, final Subscription[] all_subs) {
if (all_subs.length > 1) {
MenuItem menuItem = menu_creator.createMenu("menu.set.parent");
menuItem.addMultiListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription[] subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
if (subs.length == 1) {
entry.setPreenteredText(subs[0].getParent(), false);
}
entry.maintainWhitespace(false);
entry.allowEmptyInput(true);
entry.setLocalisedTitle(MessageText.getString("label.set.parent"));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() == 0) {
input = null;
}
for (Subscription sub : subs) {
sub.setParent(input);
}
}
});
}
});
return;
}
final Subscription subs = all_subs[0];
boolean is_search_template = subs.isSearchTemplate();
if (!is_search_template) {
MenuItem menuItem = menu_creator.createMenu("Subscription.menu.forcecheck");
menuItem.setText(MessageText.getString("Subscription.menu.forcecheck"));
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
subs.getManager().getScheduler().downloadAsync(subs, true);
} catch (SubscriptionException e) {
Debug.out(e);
}
}
});
menuItem = menu_creator.createMenu("Subscription.menu.clearall");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
subs.getHistory().markAllResultsRead();
menu_creator.refreshView();
}
});
menuItem = menu_creator.createMenu("Subscription.menu.dirtyall");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
subs.getHistory().markAllResultsUnread();
menu_creator.refreshView();
}
});
menuItem = menu_creator.createMenu("Subscription.menu.deleteall");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
subs.getHistory().deleteAllResults();
menu_creator.refreshView();
}
});
menuItem = menu_creator.createMenu("Subscription.menu.reset");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
subs.getHistory().reset();
try {
subs.getEngine().reset();
} catch (Throwable e) {
Debug.printStackTrace(e);
}
try {
subs.getManager().getScheduler().downloadAsync(subs, true);
} catch (Throwable e) {
Debug.out(e);
}
}
});
try {
Engine engine = subs.getEngine();
if (engine instanceof WebEngine) {
if (((WebEngine) engine).isNeedsAuth()) {
menuItem = menu_creator.createMenu("Subscription.menu.resetauth");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
Engine engine = subs.getEngine();
if (engine instanceof WebEngine) {
((WebEngine) engine).setCookies(null);
}
} catch (Throwable e) {
Debug.printStackTrace(e);
}
try {
subs.getManager().getScheduler().downloadAsync(subs, true);
} catch (Throwable e) {
Debug.out(e);
}
}
});
menuItem = menu_creator.createMenu("Subscription.menu.setcookies");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
try {
Engine engine = subs.getEngine();
if (engine instanceof WebEngine) {
final WebEngine we = (WebEngine) engine;
UISWTInputReceiver entry = new SimpleTextEntryWindow();
String[] req = we.getRequiredCookies();
String req_str = "";
for (String r : req) {
req_str += (req_str.length() == 0 ? "" : ";") + r + "=?";
}
entry.setPreenteredText(req_str, true);
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
entry.setTitle("general.enter.cookies");
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
try {
String input = entry.getSubmittedInput().trim();
if (input.length() > 0) {
we.setCookies(input);
subs.getManager().getScheduler().downloadAsync(subs, true);
}
} catch (Throwable e) {
Debug.printStackTrace(e);
}
}
});
}
} catch (Throwable e) {
Debug.printStackTrace(e);
}
}
});
}
}
} catch (Throwable e) {
Debug.printStackTrace(e);
}
// sep
menu_creator.createMenu("s1").setStyle(MenuItem.STYLE_SEPARATOR);
// category
menuItem = menu_creator.createMenu("MyTorrentsView.menu.setCategory");
menuItem.setStyle(MenuItem.STYLE_MENU);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
addCategorySubMenu(menu_manager, menu, subs);
}
});
// tag
menuItem = menu_creator.createMenu("label.tag");
menuItem.setStyle(MenuItem.STYLE_MENU);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
addTagSubMenu(menu_manager, menu, subs);
}
});
// parent
menuItem = menu_creator.createMenu("menu.set.parent");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
entry.setPreenteredText(subs.getParent(), false);
entry.maintainWhitespace(false);
entry.allowEmptyInput(true);
entry.setLocalisedTitle(MessageText.getString("label.set.parent", new String[] { subs.getName() }));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() == 0) {
input = null;
}
subs.setParent(input);
}
});
}
});
// view options
menuItem = menu_creator.createMenu("menu.view.options");
menuItem.setStyle(MenuItem.STYLE_MENU);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.removeAllChildItems();
int vo = subs.getViewOptions();
MenuItem m = menu_manager.addMenuItem(menu, "label.full");
m.setStyle(MenuItem.STYLE_RADIO);
m.setData(Boolean.valueOf(vo == Subscription.VO_FULL));
m.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
subs.setViewOptions(Subscription.VO_FULL);
}
});
m = menu_manager.addMenuItem(menu, "label.no.header");
m.setStyle(MenuItem.STYLE_RADIO);
m.setData(Boolean.valueOf(vo == Subscription.VO_HIDE_HEADER));
m.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
subs.setViewOptions(Subscription.VO_HIDE_HEADER);
}
});
}
});
// chat
final String key = SubscriptionUtils.getSubscriptionChatKey(subs);
if (key != null) {
menuItem = menu_creator.createMenu("label.chat");
menuItem.setHeaderCategory(MenuItem.HEADER_SOCIAL);
MenuBuildUtils.addChatMenu(menu_manager, menuItem, new MenuBuildUtils.ChatKeyResolver() {
@Override
public String getChatKey(Object object) {
return (key);
}
});
}
if (subs.isUpdateable()) {
menuItem = menu_creator.createMenu("MyTorrentsView.menu.rename");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
entry.setPreenteredText(subs.getName(), false);
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
entry.setLocalisedTitle(MessageText.getString("label.rename", new String[] { subs.getName() }));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() > 0) {
try {
subs.setName(input);
} catch (Throwable e) {
Debug.printStackTrace(e);
}
}
}
});
}
});
}
menuItem = menu_creator.createMenu("Subscription.menu.upgrade");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
subs.resetHighestVersion();
}
});
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setVisible(subs.getHighestVersion() > subs.getVersion());
}
});
}
MenuItem menuItem = menu_creator.createMenu("label.copy.uri.to.clip");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
ClipboardCopy.copyToClipBoard(subs.getURI());
}
});
menuItem = menu_creator.createMenu("Subscription.menu.export");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
export(subs);
}
});
// sep
menu_creator.createMenu("s2").setStyle(MenuItem.STYLE_SEPARATOR);
if (!is_search_template) {
try {
Engine engine = subs.getEngine();
if (engine instanceof WebEngine) {
menuItem = menu_creator.createMenu("menu.change.url");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
try {
WebEngine web_engine = (WebEngine) subs.getEngine();
entry.setPreenteredText(web_engine.getSearchUrl(true), false);
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
entry.setLocalisedTitle(MessageText.getString("change.url.msg.title", new String[] { subs.getName() }));
entry.setMessage("change.url.msg.desc");
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() > 0) {
try {
WebEngine web_engine = (WebEngine) subs.getEngine();
web_engine.setSearchUrl(input);
subs.cloneWithNewEngine(web_engine);
} catch (Throwable e) {
Debug.out(e);
}
}
}
});
} catch (Throwable e) {
Debug.out(e);
}
}
});
}
} catch (Throwable e) {
Debug.out(e);
}
// public
menuItem = menu_creator.createMenu("subs.prop.is_public");
menuItem.setStyle(MenuItem.STYLE_CHECK);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setData(subs.isPublic());
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
subs.setPublic(!subs.isPublic());
} catch (Throwable e) {
Debug.out(e);
}
}
});
// enabled
menuItem = menu_creator.createMenu("subs.prop.enabled");
menuItem.setStyle(MenuItem.STYLE_CHECK);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setData(subs.getHistory().isEnabled());
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
subs.getHistory().setEnabled(!subs.getHistory().isEnabled());
} catch (Throwable e) {
Debug.out(e);
}
}
});
if (subs.isAutoDownloadSupported()) {
// auto-dl
menuItem = menu_creator.createMenu("subs.prop.is_auto");
menuItem.setStyle(MenuItem.STYLE_CHECK);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setData(subs.getHistory().isAutoDownload());
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
subs.getHistory().setAutoDownload(!subs.getHistory().isAutoDownload());
} catch (Throwable e) {
Debug.out(e);
}
}
});
}
// refresh period
menuItem = menu_creator.createMenu("subs.prop.update_period");
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
int check_freq = subs.getHistory().getCheckFrequencyMins();
String text = MessageText.getString("subs.prop.update_period");
if (check_freq != Integer.MAX_VALUE) {
text += " (" + check_freq + " " + MessageText.getString("ConfigView.text.minutes") + ")";
}
menu.setText(text + "...");
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
int check_freq = subs.getHistory().getCheckFrequencyMins();
entry.setPreenteredText(check_freq == Integer.MAX_VALUE ? "" : String.valueOf(check_freq), false);
entry.setLocalisedTitle(MessageText.getString("subscriptions.enter.freq"));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() > 0) {
try {
subs.getHistory().setCheckFrequencyMins(Integer.parseInt(input));
} catch (Throwable e) {
}
}
}
});
}
});
// dl is anon
menuItem = menu_creator.createMenu("subs.prop.is_dl_anon");
menuItem.setStyle(MenuItem.STYLE_CHECK);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setData(subs.getHistory().getDownloadNetworks() != null);
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
boolean is_anon = subs.getHistory().getDownloadNetworks() != null;
subs.getHistory().setDownloadNetworks(is_anon ? null : AENetworkClassifier.AT_NON_PUBLIC);
} catch (Throwable e) {
Debug.out(e);
}
}
});
// post notification
menuItem = menu_creator.createMenu("subs.noti.post");
menuItem.setStyle(MenuItem.STYLE_CHECK);
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
menu.setData(subs.getHistory().getNotificationPostEnabled());
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
try {
subs.getHistory().setNotificationPostEnabled(!subs.getHistory().getNotificationPostEnabled());
} catch (Throwable e) {
Debug.out(e);
}
}
});
// max results
menuItem = menu_creator.createMenu("label.set.max.results");
menuItem.addFillListener(new MenuItemFillListener() {
@Override
public void menuWillBeShown(MenuItem menu, Object data) {
int max_results = subs.getHistory().getMaxNonDeletedResults();
if (max_results < 0) {
SubscriptionManager subs_man = SubscriptionManagerFactory.getSingleton();
max_results = subs_man.getMaxNonDeletedResults();
}
String max_results_str = (max_results == 0 ? MessageText.getString("ConfigView.unlimited") : String.valueOf(max_results));
String text = MessageText.getString("label.set.max.results");
text += " (" + max_results_str + ")";
menu.setText(text + "...");
}
});
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
entry.maintainWhitespace(false);
entry.allowEmptyInput(true);
int max_results = subs.getHistory().getMaxNonDeletedResults();
if (max_results < 0) {
SubscriptionManager subs_man = SubscriptionManagerFactory.getSingleton();
max_results = subs_man.getMaxNonDeletedResults();
}
if (max_results > 0) {
entry.setPreenteredText(String.valueOf(max_results), false);
}
entry.setLocalisedTitle(MessageText.getString("subscriptions.enter.max.results"));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
try {
subs.getHistory().setMaxNonDeletedResults(input.length() == 0 ? -1 : Math.abs(Integer.parseInt(input)));
} catch (Throwable e) {
Debug.out(e);
}
}
});
}
});
// rename
menuItem = menu_creator.createMenu("MyTorrentsView.menu.rename");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(final Subscription subs) {
UISWTInputReceiver entry = new SimpleTextEntryWindow();
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
entry.setPreenteredText(subs.getName(), false);
entry.maintainWhitespace(false);
entry.allowEmptyInput(false);
entry.setLocalisedTitle(MessageText.getString("label.rename", new String[] { subs.getName() }));
entry.prompt(new UIInputReceiverListener() {
@Override
public void UIInputReceiverClosed(UIInputReceiver entry) {
if (!entry.hasSubmittedInput()) {
return;
}
String input = entry.getSubmittedInput().trim();
if (input.length() > 0) {
subs.setLocalName(input);
}
}
});
}
});
}
menuItem = menu_creator.createMenu("Subscription.menu.remove");
Utils.setMenuItemImage(menuItem, "delete");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
removeWithConfirm(subs);
}
});
menu_creator.createMenu("s3").setStyle(MenuItem.STYLE_SEPARATOR);
menuItem = menu_creator.createMenu("Subscription.menu.properties");
menuItem.addListener(new SubsMenuItemListener() {
@Override
public void selected(Subscription subs) {
showProperties(subs);
}
});
}
use of com.biglybt.core.metasearch.Engine in project BiglyBT by BiglySoftware.
the class SubscriptionManagerUI method checkSubscriptionForStuff.
private void checkSubscriptionForStuff(Subscription sub) {
if (sub.isSearchTemplate()) {
return;
}
if (sub.isSubscribed() && sub.getAddType() != Subscription.ADD_TYPE_IMPORT) {
return;
}
try {
Engine engine = sub.getEngine();
if (engine instanceof RSSEngine) {
RSSEngine re = (RSSEngine) engine;
String url_str = re.getSearchUrl(true);
URL url = new URL(url_str);
String prot = url.getProtocol();
if (prot.equals("azplug")) {
String q = url.getQuery();
Map<String, String> args = UrlUtils.decodeArgs(q);
String id = args.get("id");
if (id.equals("azbuddy")) {
String arg = args.get("arg");
String[] bits = arg.split(":", 2);
String chat_protocol = bits[0];
if (chat_protocol.startsWith("chat")) {
Map<String, String> chat_args = UrlUtils.decodeArgs(bits[1]);
String chat_key = chat_args.get("");
int pos = chat_key.toLowerCase(Locale.US).indexOf("website[pk=");
if (pos != -1) {
Map<String, String> cb_data = new HashMap<>();
cb_data.put("subname", sub.getName());
cb_data.put("subid", sub.getID());
LocalActivityManager.addLocalActivity("Website:" + sub.getID(), "rss", MessageText.getString("subs.activity.website.found", new String[] { sub.getName() }), new String[] { MessageText.getString("subscriptions.listwindow.subscribe") }, ActivityCallback.class, cb_data);
}
}
}
}
}
} catch (Throwable e) {
// ignore, nothing to see!
}
}
use of com.biglybt.core.metasearch.Engine in project BiglyBT by BiglySoftware.
the class SubscriptionImpl method getQueryKey.
@Override
public String getQueryKey() {
try {
Map map = JSONUtils.decodeJSON(getJSON());
String search_term = (String) map.get("search_term");
Map filters = (Map) map.get("filters");
Engine engine = manager.getEngine(this, map, true);
String name = engine.getNameEx();
if (search_term != null && search_term.length() > 0) {
name += ", query=" + search_term;
}
if (filters != null && filters.size() > 0) {
name += ", filters=" + new SubscriptionResultFilterImpl(this, filters).getString();
}
return (name);
} catch (Throwable e) {
return (null);
}
}
Aggregations