public void recommendations(Map<String, List<String>> requestProperties) { Recommendations _recommendations = new Recommendations(); UnitofInteraction talking = new UnitofInteraction(requestProperties); talking.startThread(); // Add the "--groupname" preffix to the given command text so the // _getArguments method puts the groupname under the "--groupname" key. if (requestProperties.get("text") != null) { if (requestProperties.get("text").get(0) != null) { requestProperties.get("text").set(0, "--groupname " + requestProperties.get("text").get(0)); } } Map<String, String> result = null; try { result = _recommendations.Run(GeneralStuff._getArguments(requestProperties)); } catch (MessagingException ex) { result.put("text", result.get("text") + "`" + ex.getMessage() + "`"); talking.notifyError(); } catch (IOException ex) { Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex); talking.notifyError(); } catch (SQLException ex) { Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex); talking.notifyError(); } catch (ClassNotFoundException ex) { Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex); talking.notifyError(); } finally { talking.stopThread(); } String text = result.get("text"); requestProperties.put("text", Arrays.asList(new String[] {text})); System.out.println(text); try { GeneralStuff._sendMessage(GeneralStuff._forgeMessage(requestProperties)); } catch (IOException ex) { Logger.getLogger(Commands.class.getName()).log(Level.SEVERE, null, ex); } }
@Override public List<RecommendedItem> recommend( long userID, int howMany, IDRescorer rescorer, boolean includeKnownItems) throws TasteException { Preconditions.checkArgument(howMany >= 1, "howMany must be at least 1"); synchronized (maxHowMany) { if (howMany > maxHowMany[0]) { maxHowMany[0] = howMany; } } // Special case, avoid caching an anonymous user if (userID == PlusAnonymousUserDataModel.TEMP_USER_ID) { return recommendationsRetriever.get(PlusAnonymousUserDataModel.TEMP_USER_ID).getItems(); } setCurrentRescorer(rescorer); setCurrentlyIncludeKnownItems(includeKnownItems); Recommendations recommendations = recommendationCache.get(userID); if (recommendations.getItems().size() < howMany && !recommendations.isNoMoreRecommendableItems()) { clear(userID); recommendations = recommendationCache.get(userID); if (recommendations.getItems().size() < howMany) { recommendations.setNoMoreRecommendableItems(true); } } List<RecommendedItem> recommendedItems = recommendations.getItems(); return recommendedItems.size() > howMany ? recommendedItems.subList(0, howMany) : recommendedItems; }