clan_raidlogs.ash override: mimic the clan raid log manager!

heeheehee

Developer
Staff member
This is a follow-up to the scripts I posted in some other thread.

Once again: dungeonlog.ash populates the loot tables used by relay_DungeonParser.ash. The .txt file should go in your /data folder, dungeonlog.ash should go in your /scripts folder, and everything else should go in your /relay folder.

For now, it's Hobopolis only. Slime tube doesn't really have that much to track -- but yes, I should do this eventually. Slime tube drops, however, are at the bottom of the loot logs, just not formatted nicely like the hobo stuff.

clan_raidlogs is a relay override that mimics the Hobopolis component of the GM raid log manager script (css file was essentially lifted from that script's code). Main reason to use this is if you don't like being constrained to just FF because of GM.

No script dependencies whatsoever, aside from those included here.

Enjoy and have fun!

Improvements from the previous version I posted:
  • More functionality mimicking, in the form of properly sorting entries and hiding entries/tables if they didn't have anything worthwhile in them.
  • Fixed a bug in the detection of defeats.
  • Linking of the files.
  • Efficiency improvements to dungeonlog.ash.
  • Links added to clan_raidlogs.ash, headers now clickable (autoloads jquery, btw), reduced server hits.
 

Attachments

  • raidlog_data.txt
    3.7 KB · Views: 164
  • raidlogs.css
    11.6 KB · Views: 111
  • dungeonlog.ash
    2.1 KB · Views: 122
  • relay_DungeonParser.ash
    4.5 KB · Views: 124
  • clan_raidlogs.ash
    15.5 KB · Views: 127
Last edited:

slyz

Developer
I haven't looked at the scripts closely yet (and the clan I'm running dungeonparser.ash in is taking a loooong time). I did have a question: does relay_DungeonParser.ash only show the loot present in dungeonLoot.txt that was parsed from the current clan? Or all the loot from dungeonLoot.txt?
 

heeheehee

Developer
Staff member
All the loot, since if, say, I've gotten my hamster out-of-clan but everything else in-clan, and I run the script in both locations, regardless of how I display it, I still have a hamster. :p
 

slyz

Developer
It managed to go through 1334 instances before: Unexpected error, debug log printed.
Code:
java.lang.OutOfMemoryError: Java heap space
I moved the map_to_file() inside the while loop. Maybe I'm going to try running this in a small sideclan first.
 

heeheehee

Developer
Staff member
Huh. I could always attempt to make some optimizing changes so it doesn't use as much memory, or perhaps split it up into several files, of which only one would be loaded at a given time.

(But yeah, it's hilarious that ASH can make Java run out of heap space. :D)
 

heeheehee

Developer
Staff member
slyz -- try the most recently updated version. It now only stores one int per clan, which should be significantly less bloat. I made various other minor efficiency / speed tweaks. The clan I'm in doesn't quite have thousands of dungeon logs -- we've got just shy of 600 -- but I suppose I could simulate it by looping through the instances 5 times.

Also, note that the super-long runtime is only for the first time that you manage to run it successfully. :D

edit: alternatively, experimental (read: untested because of rollover) version (in which I attempt to decouple some things) posted below. Probably entirely pointless, since java is not going to execute a finally {} block if it runs out of memory, I'd imagine.

double edit: the version up top leads to at least a 25% increase in speed. And the majority of the time either way is spent with visit_url() calls, which I can't get around. :p
 

Attachments

  • dungeonlog.ash
    1.9 KB · Views: 46
Last edited:

slyz

Developer
I'll try it, but I moved the map_to_file() back in the loop, just in case =)

EDIT:

Hodgman's skivvies (407)
Slimy Eyeball (447)
Slimy Tooth (683)

That should be 1537 logs.
 
Last edited:

Veracity

Developer
Staff member
(But yeah, it's hilarious that ASH can make Java run out of heap space. :D)
Code:
int [int] map;
for i from 1 to 1000000000 {
	map[i] = i;
}

Exception in thread "CommandQueueHandler" java.lang.OutOfMemoryError: Java heap space

It's really not a surprise, I hope.
 

slyz

Developer
dungeonlog.ash worked like a charm this time around, thanks Heeheehee. I'm going to post the resulting data files on our forums so that people who wish to use this don't have to go through all those logs again :)

Now, on to clan_raidlogs.ash. Our current hobopolis run has 14 participants, and I see that on its first run there is a visit_url() for each player to extract the name from showplayer.php. I think this could probably be avoided. Here is what the Raid Manager does to extract player names:
PHP:
var dataArray = sectionData.split("<br>");

for (var j=0; j < dataArray.length; j++ )  // Cycle through each line entry
{
  var character = getPlayer(dataArray[j]);

  if (character != "" && charArray.indexOf(character) < 0) 
	charArray[charArray.length] = character;
}

function getPlayer(theString)
{
      var player = theString.replace("<b>","").replace("</b>","").match(/^[\w\s]+\(#\d+\)/);
      if (player != null){
         return player[0];
      }
      return "";
}
Would it be possible to add something like this?

Another small feature request: links to the clan basement and the sewers :)
 

heeheehee

Developer
Staff member
Code:
int [int] map;
for i from 1 to 1000000000 {
	map[i] = i;
}

Exception in thread "CommandQueueHandler" java.lang.OutOfMemoryError: Java heap space

It's really not a surprise, I hope.

Well, I mean in the context of a "reasonable" use, of course.

And slyz: Yeah, I should really parse names from context (i.e. the current page). Server hits are bad. Also, those links should be doable / simple. Could also attempt a crude semblance of formatting.

Edit: Done, and added a bonus with this update. :D
 
Last edited:

heeheehee

Developer
Staff member
To all those who've already downloaded this script: I'd recommend redownloading raidlog_data.txt and clan_raidlogs.ash, since I've just uploaded a few bugfixes to those (correcting typos :p). I'm considering uploading raidlog_data.txt to zarqon's map manager (but then again, the only major update that I might make will be adding slime tube support), so that'll be another update in the future.
 

heeheehee

Developer
Staff member
Heads up to any folks who might be using this script: I just uploaded several bugfixes involving loot parsing (so grab raidlogs.css, dungeonlog.ash, and relay_DungeonParser.ash). Apologies to those who'll have to run these scripts over 1000+ logs. Again.

Also, bugfix to clan_raidlogs.ash means that you'll want to grab that, as well.
 

Rinn

Developer
Couple feature requests\bugs:

  • Don't show a player in a zone specific table if they've active in the instance but have spent 0 turns in a zone.
  • Remember collapsed state of zone tables in the raidlog
  • Allow collapsing the "Clan Dungeon Logs" section at the bottom, and collapse it by default
  • If no dungeon is currently open, the relay script doesn't add any links to the loot logs.
  • Collapse the loot log outfit columns into one column since the pieces can be zapped
  • Option on the loot logs to show only the players active in the current instance
  • Sortable loot log table (you can use sorttable.js for this, or just reload the page)
  • Once logs are loaded, show the list of players that need a specific piece of equipment next to the distro dropdowns (or maybe press a button to show it, since you probably don't want to autoload the loot logs on the clan basement page)
  • Your update didn't clear out the old maps, so now all the current players are showing double the items they've been distroed since I already had parsed all the logs before. I deleted the data files manually and reparsed to resolve this.
 
Last edited:

heeheehee

Developer
Staff member
Don't show a player in a zone specific table if they've active in the instance but have spent 0 turns in a zone.
Thought that was fixed. Guess not. Fixed locally.
Remember collapsed state of zone tables in the raidlog
This would be a cookie, yes?
Allow collapsing the "Clan Dungeon Logs" section at the bottom, and collapse it by default
Doable, I suppose.
If no dungeon is currently open, the relay script doesn't add any links to the loot logs.
Should be a simple fix. Fixed locally.
Collapse the loot log outfit columns into one column since the pieces can be zapped
Definitely possible.
Option on the loot logs to show only the players active in the current instance
This would involve ASH scripts passing information between each other, since these are separate scripts. Or an additional server hit.
Sortable loot log table (you can use sorttable.js for this, or just reload the page)
I've experienced some issues with sorttable.js in the past, and reloading the page might not be worthwhile.
Once logs are loaded, show the list of players that need a specific piece of equipment next to the distro dropdowns (or maybe press a button to show it, since you probably don't want to autoload the loot logs on the clan basement page)
I guess I could?
Your update didn't clear out the old maps, so now all the current players are showing double the items they've been distroed since I already had parsed all the logs before. I deleted the data files manually and reparsed to resolve this.
What would be a good fix for this, short of renaming the target maps?

May roll out some release of sorts in a week or so; been playing around with an EatDrink replacement for the time being (solving NP-complete problems efficiently with ASH is tons of fun!).
 
Last edited:
Top