From 2a0f8b3ba822f83ec7c6f3cbbdf1d616b5013d4e Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sat, 11 Apr 2020 19:23:28 +0900 Subject: [PATCH] Add in whitelist sub-tagging. Add a template example file. --- Tagger/Tagger.jar | Bin 7485266 -> 7485766 bytes Tagger/src/PixivManager.java | 31 ++++++++++++++++++++++++++----- Tagger/src/imageTag.java | 22 ++++++++++++++++++---- Tagger/whitelist_template.txt | 4 ++++ 4 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 Tagger/whitelist_template.txt diff --git a/Tagger/Tagger.jar b/Tagger/Tagger.jar index 81469e75c51160ae1b0f49e49165bbd21e8cb588..9e5b65ec0f7f9d7f40a02830a026102a39d2597c 100644 GIT binary patch delta 20956 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 diff --git a/Tagger/src/PixivManager.java b/Tagger/src/PixivManager.java index 2ca1d4b..e076b05 100644 --- a/Tagger/src/PixivManager.java +++ b/Tagger/src/PixivManager.java @@ -33,8 +33,9 @@ public class PixivManager { skippedItems.delete(); folder.mkdirs(); File outputTest = new File("TAG_DATA.txt"); - FileWriter fwOutput; - BufferedWriter bwOutput; + outputTest.delete(); + FileWriter fwOutput,fwOutput2; + BufferedWriter bwOutput,bwOutput2; try { fwOutput = new FileWriter(outputTest,true); bwOutput = new BufferedWriter(fwOutput); @@ -96,7 +97,7 @@ public class PixivManager { ENTag = translationObj.getString("en"); } } else - if (tag.has("tag") && /*romaji.length()==0 &&*/ !tag.getString("tag").matches(".*[ぁ-んァ-ン一-龯]")) { + if (tag.has("tag") /*&& romaji.length()==0 */&& !tag.getString("tag").matches(".*[ぁ-んァ-ン一-龯]")) { hasEnglishTag=true; ENTag = tag.getString("tag"); } @@ -115,8 +116,12 @@ public class PixivManager { insertedTag = romaji; tagSubmitted=true; }*/ + + //insertedTag is the tag that will be used for the image. + insertedTag = ConvertTag(insertedTag.trim().toLowerCase()); + if (tagSubmitted) { - if (imageTag.tag_whitelist.size()==0 || imageTag.tag_whitelist.containsKey(insertedTag.toLowerCase())) { + if (imageTag.tag_whitelist.size()==0 || imageTag.tag_whitelist.containsKey(insertedTag.trim().toLowerCase())) { if (imageTag.taglist.containsKey(s)) { List tags = imageTag.taglist.get(s); tags.add(insertedTag); @@ -172,19 +177,26 @@ public class PixivManager { Set s = sorted.entrySet(); Iterator i = s.iterator(); File tagFile = new File("SORTED_TAGS.txt"); - FileWriter fw; + File tagFile2 = new File("RAW_TAGS.txt"); + FileWriter fw,fw2; try { fw = new FileWriter(tagFile); + fw2 = new FileWriter(tagFile2); BufferedWriter bw = new BufferedWriter(fw); + BufferedWriter bw2 = new BufferedWriter(fw2); while (i.hasNext()) { Map.Entry m = (Map.Entry)i.next(); String key = (String)m.getKey(); Integer value = (Integer)m.getValue(); bw.write(key+" - "+value); bw.newLine(); + bw2.write(key); + bw2.newLine(); } bw.close(); + bw2.close(); fw.close(); + fw2.close(); } catch (IOException e1) { e1.printStackTrace(); } @@ -207,6 +219,15 @@ public class PixivManager { } + private String ConvertTag(String insertedTag) { + if (imageTag.subtaglist.containsKey(insertedTag.trim().toLowerCase())) { + System.out.println(" Converting subtag "+insertedTag.trim().toLowerCase()+"->"+imageTag.subtaglist.get(insertedTag.trim().toLowerCase())); + return imageTag.subtaglist.get(insertedTag.trim().toLowerCase()); + } + return insertedTag; + } + + public static > Map sortByValues(final Map map) { Comparator valueComparator = diff --git a/Tagger/src/imageTag.java b/Tagger/src/imageTag.java index 6bc50b2..0c7ff50 100644 --- a/Tagger/src/imageTag.java +++ b/Tagger/src/imageTag.java @@ -28,6 +28,7 @@ public class imageTag { public static List pixiv_image_list = new ArrayList(); public static List pixiv_rawimage_list = new ArrayList(); public static HashMap> taglist = new HashMap>(); + public static HashMap subtaglist = new HashMap(); public static Map tagCounter = new TreeMap(); public static void main(String[] args) { @@ -60,10 +61,23 @@ public class imageTag { try { s = br.readLine(); while (s!=null) { - String newtag = s.trim().toLowerCase(); - tag_whitelist.put(newtag,true); - System.out.println("Read in whitelisted tag: "+newtag); - s=br.readLine(); + String[] split = s.split(":"); + if (split.length>0) { + String newtag = split[0].trim().toLowerCase(); + tag_whitelist.put(newtag,true); + System.out.println("Read in whitelisted tag: "+newtag); + for (int i=1;i