j0sh77
New Member
- Joined
- Jan 12, 2017
- Messages
- 12
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:
Example output:
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: