• Visit Rebornbuddy
  • 36 Days of Pokefarmer Data

    Discussion in 'Pokefarmer Forum' started by j0sh77, Feb 28, 2017.

    1. j0sh77

      j0sh77 New Member

      Joined:
      Jan 12, 2017
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      1
      Hello! I posted some data a while ago, but I started a new account and this is what I've got after 36 days of botting. Most of the time was spent in the San Francisco area, but a few days in Michigan as well. I bot about 10 hours a day with a 7km/hr walking speed. I'm currently level 32. If you have any ideas for other metrics I could try to get from the logs, let me know!

      Some summary data
      [table="width: 500, class: grid"]
      [tr]
      [td]Total Caught[/td]
      [td]12,782[/td]
      [/tr]
      [tr]
      [td]Unique Caught[/td]
      [td]146[/td]
      [/tr]
      [tr]
      [td]Most Common Poke[/td]
      [td]Psyduck (1,298)[/td]
      [/tr]
      [tr]
      [td]Total Hatched[/td]
      [td]186[/td]
      [/tr]
      [tr]
      [td]Unique Hatched[/td]
      [td]60[/td]
      [/tr]
      [tr]
      [td]Most Common Egg[/td]
      [td]Nidoran (10)[/td]
      [/tr]
      [tr]
      [td]Total Loots[/td]
      [td]10,795[/td]
      [/tr]
      [tr]
      [td]Total Items[/td]
      [td]36,060[/td]
      [/tr]
      [tr]
      [td]Most Common Item[/td]
      [td]Pokeball (17,656)[/td]
      [/tr]
      [tr]
      [td]Least Common Item[/td]
      [td]Sun Stone (3)[/td]
      [/tr]
      [/table]


      Here's the spreadsheet

      Source code:
      Code:
      import java.io.BufferedReader;
      import java.io.File;
      import java.io.FileReader;
      import java.io.IOException;
      import java.util.LinkedHashMap;
      
      public class Counter {
      
      	public static void main(String[] args) throws IOException {
      
      		//SETTINGS
      		//this is where your logs are located. use full path. 
      		String logLocation = "C:/.../PokeFarmer/Logs";
      		//lines are everything preceding the pokemon's name
      		//phrases are the phrases used to tell us what was done. in english, catch is "Caught" and hatch is "hatched from egg"
      		String catchPokemonLine = "INFO <b><font color=\"#0094FF\">[00:22:41]</font></b> Caught <b><font color=\"#0094FF\">";
      		String catchPokemonPhrase = "Caught";
      		String hatchPokemonLine = "INFO <b><font color=\"#0094FF\">[13:38:09]</font></b> Pokemon <font color=\"#FFB200\"><b>";
      		String hatchPokemonPhrase = "hatched from egg";
      		String lootLine = "INFO <b><font color=\"#0094FF\">[04:57:00]</font></b> Looting <font color=\"#0094FF\"><b>";
      		String lootPhrase = "Looting";
      		String receiveLine = "INFO <b><font color=\"#0094FF\">[04:57:01]</font></b> Received item <font color=\"#0094FF\"><b>1</b>x <b>";
      		String receivePhrase = "Received item <font ";
      		//use this if you want to specify a date. leave blank if you don't. format the same as a log file (ex. 2017-01-11)
      		String date = "";
      		
      
      		LinkedHashMap<String, Integer> caught = new LinkedHashMap<String, Integer>();
      		LinkedHashMap<String, Integer> hatched = new LinkedHashMap<String, Integer>();
      		LinkedHashMap<String, Integer> received = new LinkedHashMap<String, Integer>();
      		int lootCount = 0;
      		File f = new File(logLocation);
      
      		File[] files = f.listFiles();
      		for (File file : files) {
      			//filter directories and non .txt
      			if(file.isDirectory() || !file.getCanonicalPath().contains(".txt")) continue;
      			if(!date.isEmpty() && !file.getName().contains(date)) continue;
      
      			try(BufferedReader br = new BufferedReader(new FileReader(file))) {
      				for(String line; (line = br.readLine()) != null; ) {
      					//caught
      					if(line.toLowerCase().contains(catchPokemonPhrase.toLowerCase())){
      						String pokemon = line.substring(catchPokemonLine.length(), line.indexOf(" CP("));
      						addValue(caught, pokemon);
      					}
      
      					//hatched
      					if(line.toLowerCase().contains(hatchPokemonPhrase.toLowerCase())){
      						String pokemon = line.substring(hatchPokemonLine.length(), line.indexOf("</b></font>"));
      						addValue(hatched, pokemon);
      					}
      					
      					//looted
      					if(line.toLowerCase().contains(lootPhrase.toLowerCase())){
      						lootCount++;
      					}
      					
      					//looted - received item
      					if(line.toLowerCase().contains(receivePhrase.toLowerCase())){
      						String item = line.substring(receiveLine.length(), line.indexOf("</b></font>"));
      						item = item.replace(" Ball", "ball").replace(">", "");
      						addValue(received, item);
      					}
      				}
      			}
      		}
      		
      		//sort
      		caught = sortHash(caught);
      		hatched = sortHash(hatched);
      		received = sortHash(received);
      		
      		//print results 
      		System.out.println("Results for " + (date.isEmpty() ? "all dates" : date) + ":\n");
      		System.out.println("CAUGHT:");
      		for (String key : caught.keySet()) {
      			System.out.println(key + "\t" + caught.get(key));
      		}
      
      		System.out.println("\n\n\nHATCHED:");
      		for (String key : hatched.keySet()) {
      			System.out.println(key + "\t" + hatched.get(key));
      		}
      		
      		System.out.println("\n\nITEMS LOOTED FROM " + lootCount + " LOOTS:");
      		for (String key : received.keySet()) {
      			System.out.println(key + "\t" + received.get(key));
      		}
      
      	}
      
      	//add values to hashtables
      	static void addValue(LinkedHashMap<String, Integer> map, String word) {
      		if (map.containsKey(word)) {
      			map.put(word, map.get(word) + 1);
      		} else {
      			map.put(word, 1);
      		}
      	}
      	
      	static LinkedHashMap<String, Integer> sortHash(LinkedHashMap<String, Integer> map){
      		LinkedHashMap<String, Integer> ret = new LinkedHashMap<String, Integer>();
      		while(!map.isEmpty()){
      			String kmax = "";
      			int max = 0;
      			for (String key : map.keySet()) {
      				if(map.get(key) >= max){
      					max = map.get(key);
      					kmax = key;
      				}
      			}
      			ret.put(kmax, max);
      			map.remove(kmax);
      		}
      		return ret;
      	}
      }
      
      Example output:
      Code:
      Results for all dates:
      
      CAUGHT:
      Pidgey	1249
      Psyduck	1180
      Magikarp	1139
      Rattata	1138
      Tentacool	1076
      Weedle	557
      Sentret	447
      Ledyba	338
      Eevee	321
      Spinarak	278
      Paras	255
      Venonat	237
      Spearow	233
      Murkrow	173
      Hoothoot	170
      Natu	143
      Zubat	127
      Onix	125
      Caterpie	125
      Nidoran?	122
      Krabby	117
      Goldeen	94
      Pidgeotto	92
      Wooper	88
      Jigglypuff	88
      Horsea	85
      Sandshrew	83
      Staryu	83
      Poliwag	79
      Dratini	78
      Tauros	76
      Ekans	74
      Kakuna	65
      Marill	57
      Oddish	55
      Bellsprout	53
      Swinub	51
      Gastly	46
      Shellder	42
      Meowth	42
      Exeggcute	41
      Slowpoke	39
      Seaking	38
      Hoppip	33
      Chikorita	32
      Magnemite	29
      Drowzee	28
      Cyndaquil	27
      Clefairy	27
      Rhyhorn	26
      Sunkern	25
      Pinsir	25
      Raticate	24
      Abra	24
      Golduck	21
      Lickitung	21
      Chinchou	20
      Golbat	20
      Mantine	19
      Tentacruel	19
      Totodile	18
      Furret	18
      Aipom	17
      Ledian	16
      Metapod	16
      Slugma	15
      Teddiursa	15
      Geodude	15
      Pidgeot	15
      Squirtle	14
      Bulbasaur	14
      Koffing	13
      Snubbull	12
      Pikachu	12
      Machop	11
      Houndour	10
      Wobbuffet	10
      Remoraid	10
      Dragonair	10
      Voltorb	9
      Sudowoodo	9
      Seel	9
      Growlithe	9
      Vulpix	9
      Beedrill	9
      Yanma	8
      Ariados	7
      Qwilfish	7
      Gligar	7
      Shuckle	6
      Nidorino	5
      Charmander	5
      Diglett	5
      Venomoth	5
      Electabuzz	4
      Cubone	4
      Noctowl	4
      Misdreavus	4
      Mankey	4
      Ponyta	4
      Kingler	4
      Bayleef	3
      Azumarill	3
      Phanpy	3
      Doduo	3
      Octillery	3
      Parasect	3
      Vaporeon	3
      Tangela	3
      Fearow	3
      Kabuto	2
      Ursaring	2
      Dunsparce	2
      Crobat	2
      Xatu	2
      Kadabra	2
      Omanyte	2
      Gyarados	2
      Pineco	1
      Meganium	1
      Dodrio	1
      Miltank	1
      Scyther	1
      Magcargo	1
      Lanturn	1
      Blastoise	1
      Magneton	1
      Graveler	1
      Charmeleon	1
      Houndoom	1
      Mareep	1
      Wigglytuff	1
      Chansey	1
      Weezing	1
      Rhydon	1
      Dragonite	1
      Wartortle	1
      Nidorina	1
      Arbok	1
      Seadra	1
      Starmie	1
      Weepinbell	1
      Poliwhirl	1
      Hitmonchan	1
      Magmar	1
      Dewgong	1
      
      
      
      HATCHED:
      Nidoran?	10
      Sandshrew	9
      Meowth	6
      Poliwag	6
      Oddish	6
      Charmander	6
      Caterpie	5
      Exeggcute	5
      Horsea	5
      Paras	5
      Ponyta	5
      Goldeen	5
      Psyduck	4
      Bellsprout	4
      Abra	4
      Pichu	4
      Staryu	4
      Weedle	4
      Magnemite	4
      Spearow	4
      Krabby	4
      Natu	3
      Smoochum	3
      Slowpoke	3
      Geodude	3
      Voltorb	3
      Diglett	3
      Cubone	3
      Magikarp	3
      Tentacool	3
      Bulbasaur	2
      Elekid	2
      Mankey	2
      Seel	2
      Cleffa	2
      Onix	2
      Igglybuff	2
      Growlithe	2
      Ekans	2
      Zubat	2
      Venonat	2
      Scyther	2
      Eevee	2
      Qwilfish	1
      Squirtle	1
      Phanpy	1
      Girafarig	1
      Pineco	1
      Tyrogue	1
      Rhyhorn	1
      Drowzee	1
      Omanyte	1
      Doduo	1
      Shellder	1
      Hitmonchan	1
      Pinsir	1
      Snorlax	1
      Porygon	1
      Vulpix	1
      Kabuto	1
      
      
      ITEMS LOOTED FROM 9735 LOOTS:
      Pokeball	16022
      Greatball	4470
      Potion	3734
      Razz Berry	2135
      Revive	1665
      Super Potion	1431
      Ultraball	1328
      Hyper Potion	632
      Nanab Berry	441
      Pinap Berry	418
      Max Potion	267
      Max Revive	67
      Lucky Egg	9
      Incubator	9
      Incense	7
      Lure Module	6
      Incense Ordinary	4
      Troy Disk	3
      Metal Coat	3
      Sun Stone	2
       
      Last edited: Feb 28, 2017
    2. Anticipate7c

      Anticipate7c New Member

      Joined:
      Jan 13, 2017
      Messages:
      8
      Likes Received:
      0
      Trophy Points:
      0
      That is so cool, I like the chart you made, everything is so organized. By the way, could you show us the medals and pokedex? I am interest in how many pokemons will be registered at one bot location.
       
    3. drsumitkb

      drsumitkb New Member

      Joined:
      Feb 24, 2017
      Messages:
      7
      Likes Received:
      0
      Trophy Points:
      0
      This is cool!! From where did you get this info?
       
    4. j0sh77

      j0sh77 New Member

      Joined:
      Jan 12, 2017
      Messages:
      12
      Likes Received:
      0
      Trophy Points:
      1
      As this is all taken from log data (Pokefarmer Folder -> Logs), I don't think this is possible, unfortunately. :(

      This is all from the log data. I'll edit the post and give the source code used to extract the data.
       

    Share This Page