Skip to content

Instantly share code, notes, and snippets.

@boisei0
Created February 17, 2020 02:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boisei0/190cb3349159613ccc540155f27b6b34 to your computer and use it in GitHub Desktop.
Save boisei0/190cb3349159613ccc540155f27b6b34 to your computer and use it in GitHub Desktop.
Fanfic pocket archive library recommendation algorithm
private void generateRecs() {
this.query = new SearchQuery();
long longPref = Prefs.getLongPref(this, Prefs.RECS_DATE);
if (longPref <= 0 || new Date().getTime() - longPref >= DateUtils.MILLIS_PER_DAY) {
try {
List<WorkItem> loadAll = ((ReaderApplication) getApplication()).openDb().getWorkItemDao().loadAll();
int i = 0;
for (WorkItem workItem : loadAll) {
StringBuilder stringBuilder = new StringBuilder();
SearchQuery searchQuery = this.query;
stringBuilder.append(searchQuery.tag);
stringBuilder.append("(");
searchQuery.tag = stringBuilder.toString();
List fandomIds = workItem.getFandomIds();
List relationshipIds = workItem.getRelationshipIds();
if (fandomIds.size() > 0) {
Fandom fandom = ((WorkFandom) fandomIds.get(0)).getFandom();
if (!(fandom == null || this.query.tag.contains(fandom.getFandomName()))) {
StringBuilder stringBuilder2 = new StringBuilder();
SearchQuery searchQuery2 = this.query;
stringBuilder2.append(searchQuery2.tag);
stringBuilder2.append(fandom.getFandomName());
searchQuery2.tag = stringBuilder2.toString();
}
}
if (relationshipIds.size() > 0) {
Relationship relationship = ((WorkRelationship) relationshipIds.get(0)).getRelationship();
if (!(relationship == null || this.query.tag.contains(relationship.getRelationshipName()))) {
stringBuilder = new StringBuilder();
searchQuery = this.query;
stringBuilder.append(searchQuery.tag);
stringBuilder.append(", ");
searchQuery.tag = stringBuilder.toString();
stringBuilder = new StringBuilder();
searchQuery = this.query;
stringBuilder.append(searchQuery.tag);
stringBuilder.append(relationship.getRelationshipName());
searchQuery.tag = stringBuilder.toString();
}
}
StringBuilder stringBuilder3 = new StringBuilder();
SearchQuery searchQuery3 = this.query;
stringBuilder3.append(searchQuery3.tag);
stringBuilder3.append(")");
searchQuery3.tag = stringBuilder3.toString();
if (i != loadAll.size() - 1) {
stringBuilder3 = new StringBuilder();
searchQuery3 = this.query;
stringBuilder3.append(searchQuery3.tag);
stringBuilder3.append(" || ");
searchQuery3.tag = stringBuilder3.toString();
}
i++;
}
Prefs.setLongPref(this, Prefs.RECS_DATE, new Date().getTime());
Prefs.setStringPref(this, Prefs.RECS_QUERY_TAG, this.query.tag);
} catch (Exception e) {
e.printStackTrace();
TastyToast.makeText(this, getString(C1362R.string.cant_gen_recs), 0, 3);
Answers.getInstance().logCustom((CustomEvent) new CustomEvent("Recs_Err").putCustomAttribute("Recs", e.getMessage()));
}
return;
}
this.query.tag = Prefs.getStringPref(this, Prefs.RECS_QUERY_TAG);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment