Search in sources :

Example 11 with Engine

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();
        }
    });
}
Also used : SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) SelectionEvent(org.eclipse.swt.events.SelectionEvent) MenuAdapter(org.eclipse.swt.events.MenuAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) Menu(org.eclipse.swt.widgets.Menu) WebEngine(com.biglybt.core.metasearch.impl.web.WebEngine) Engine(com.biglybt.core.metasearch.Engine) PluginEngine(com.biglybt.core.metasearch.impl.plugin.PluginEngine) MenuEvent(org.eclipse.swt.events.MenuEvent)

Example 12 with Engine

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();
}
Also used : SubscriptionException(com.biglybt.core.subs.SubscriptionException) SkinnedDialog(com.biglybt.ui.swt.views.skin.SkinnedDialog) StandardButtonsArea(com.biglybt.ui.swt.views.skin.StandardButtonsArea) Subscription(com.biglybt.core.subs.Subscription) WebEngine(com.biglybt.core.metasearch.impl.web.WebEngine) Engine(com.biglybt.core.metasearch.Engine) PluginEngine(com.biglybt.core.metasearch.impl.plugin.PluginEngine)

Example 13 with Engine

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);
        }
    });
}
Also used : MenuItem(com.biglybt.pif.ui.menus.MenuItem) WebEngine(com.biglybt.core.metasearch.impl.web.WebEngine) MenuItemFillListener(com.biglybt.pif.ui.menus.MenuItemFillListener) WebEngine(com.biglybt.core.metasearch.impl.web.WebEngine) Engine(com.biglybt.core.metasearch.Engine) RSSEngine(com.biglybt.core.metasearch.impl.web.rss.RSSEngine)

Example 14 with Engine

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!
    }
}
Also used : RSSEngine(com.biglybt.core.metasearch.impl.web.rss.RSSEngine) WebEngine(com.biglybt.core.metasearch.impl.web.WebEngine) Engine(com.biglybt.core.metasearch.Engine) RSSEngine(com.biglybt.core.metasearch.impl.web.rss.RSSEngine) URL(java.net.URL)

Example 15 with Engine

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);
    }
}
Also used : Engine(com.biglybt.core.metasearch.Engine)

Aggregations

Engine (com.biglybt.core.metasearch.Engine)24 WebEngine (com.biglybt.core.metasearch.impl.web.WebEngine)18 RSSEngine (com.biglybt.core.metasearch.impl.web.rss.RSSEngine)9 Subscription (com.biglybt.core.subs.Subscription)5 VuzeFile (com.biglybt.core.vuzefile.VuzeFile)4 URL (java.net.URL)4 PluginEngine (com.biglybt.core.metasearch.impl.plugin.PluginEngine)3 SubscriptionException (com.biglybt.core.subs.SubscriptionException)2 VuzeFileComponent (com.biglybt.core.vuzefile.VuzeFileComponent)2 MenuItemFillListener (com.biglybt.pif.ui.menus.MenuItemFillListener)2 UserPrompterResultListener (com.biglybt.ui.UserPrompterResultListener)2 ArrayList (java.util.ArrayList)2 Menu (org.eclipse.swt.widgets.Menu)2 MenuItem (org.eclipse.swt.widgets.MenuItem)2 Result (com.biglybt.core.metasearch.Result)1 SearchLoginException (com.biglybt.core.metasearch.SearchLoginException)1 SearchParameter (com.biglybt.core.metasearch.SearchParameter)1 PluginProxy (com.biglybt.core.proxy.AEProxyFactory.PluginProxy)1 SubscriptionManagerListener (com.biglybt.core.subs.SubscriptionManagerListener)1 SubscriptionResult (com.biglybt.core.subs.SubscriptionResult)1