James Risner Owner - D20 Hobbies |
UndeadMitch |
It is a strange animal, because it doesn't grant any XP (like a quest) however I don't think that you can play it as often as you like (unlike a quest).
As a note, The Comic Store Invasion s no longer available to be run for credit, it was only available from the realease of Pathfinder: City of Secrets #1 to the release of the CoS #2.
GreySector RPG Superstar 2013 Top 8 |
Michael Eshleman wrote:It is a strange animal, because it doesn't grant any XP (like a quest) however I don't think that you can play it as often as you like (unlike a quest).As a note, The Comic Store Invasion s no longer available to be run for credit, it was only available from the realease of Pathfinder: City of Secrets #1 to the release of the CoS #2.
My RVC, Del Collins, informed me that they were available to be run.
EDIT: Regardless, retired scenarios are on the list, so why shouldn't this be?
UndeadMitch |
UndeadMitch wrote:Michael Eshleman wrote:It is a strange animal, because it doesn't grant any XP (like a quest) however I don't think that you can play it as often as you like (unlike a quest).As a note, The Comic Store Invasion s no longer available to be run for credit, it was only available from the realease of Pathfinder: City of Secrets #1 to the release of the CoS #2.My RVC, Del Collins, informed me that they were available to be run.
EDIT: Regardless, retired scenarios are on the list, so why shouldn't this be?
This sentence, along with the limited distribution of the quest would lead me to say it shouldn't be run (at least, for certs):
You and your regional coordinator are welcome to schedule the Pathfinder: City of Secrets Comic Store Invasion any time from the comic's release on May 21, 2014 to the release of the second issue, in mid-June.
But anyways, like you said, it should be included if only for the sake of completeness.
Maglok |
1 person marked this as a favorite. |
Simon, could you change the reporting page so that it automatically selects me if I am logged-in, instead of having to press the "Select yourself" button?
I guess that is the most basic use people use there. I'll add that to the short-term changes, should not be any real work. :) I'll leave the button for if you want to select yourself after you selected someone else first.
James Risner Owner - D20 Hobbies |
It sort of is. The tool runs a client that connects to the API/Service. You can just run the client locally and talk to the online service.
Thanks!
I fetched the zip of the source. Can you point me to the file that handles the sort order of modules/scenarios you can play for credit?
Auke Teeninga Regional Venture-Coordinator, Baltic |
Maglok |
1 person marked this as a favorite. |
Simon Kort wrote:It sort of is. The tool runs a client that connects to the API/Service. You can just run the client locally and talk to the online service.Thanks!
I fetched the zip of the source. Can you point me to the file that handles the sort order of modules/scenarios you can play for credit?
Sure, though the initial sort is done on the server you can add a sort filter in angular or you can sort the array as javascript in the controller. The files you are looking for are: src/client/scripts/controllers/report.js and /src/client/views/report.html
For the script you probably want to edit the getContent() function. In there is a vm.content = data; If you first sort the data you got from the server and then assign you are there. :)
@Lord Laird Baites: Yeah we had a few iterations on that. With help from the dutch community we figured this is the most efficient version.
Oh and yeah Legacy of the Stonelords is technically part of season 6 and has the unique code of 00, don't ask me why. :)
Maglok |
Addendum actually James: I might have misread your request. If you mean sorting on the 'search' page then it is different. There is a variabele 'vm.data.sortoptions' which has a array of JS objects with the sort options. The server will only sort those options for you. The server does not support more sorting then those options though. So at the moment it has these:
vm.data.sortoptions = [
{key: 'name_asc', label: 'Name A-Z'},
{key: 'name_desc', label: 'Name Z-A'},
{key: 'season_asc', label: 'Number low-high'},
{key: 'season_desc', label: 'Number high-low'}
];
If you tell me what you would like to sort on I can add that to the server relatively easily. This is the PHP code that the server is using to determine the sorting at the moment:
// Sorting
if($this->get('sorting'))
{
if($this->get('sorting') == 'name_asc')
{
$scenarios->order_by('name', 'asc');
}
elseif($this->get('sorting') == 'name_desc')
{
$scenarios->order_by('name', 'desc');
}
elseif($this->get('sorting') == 'season_asc')
{
$scenarios->order_by('season', 'asc');
$scenarios->order_by('cast(number as unsigned)', 'asc');
$scenarios->order_by('name', 'asc');
}
elseif($this->get('sorting') == 'season_desc')
{
$scenarios->order_by('season', 'desc');
$scenarios->order_by('cast(number as unsigned)', 'desc');
$scenarios->order_by('name', 'desc');
}
}
To close: The reason you cannot just sort in the client is because the client only recieves a subset of all the playable content from the server on the 'search' page, while it will only get an entire season on the 'report' page. Regardless, the server does not serve you with all the content at once. This is for performance reasons of course.
Hope that answers your question. Apologies for the non-techies, I will now keep my coding talk to a minimum again.
Maglok |
That is weird. What steps did you do exactly? It does seem my server is having a few problems. I am looking into it. Apologies.
EDIT: Actually my entire server is down. I shall check with my host.
EDIT: Alright the server is back up. I shall look into why it went down. I suspect foul play. Not only the webserver went down but the entire VPS.
Maglok |
1 person marked this as a favorite. |
Some info: Last night between 19:30 and 22:00 Amsterdam time (GMT +2) the server was down. I looked into it, it was related to China. Needless to say I nipped it in the butt and we are stable again. If you were wondering why you could not access the tracker between that time, that's why.
I shall endeavour not to let the chinese do these things to my server anymore. ;) No data was accessed or lost, it was a denial of service.
I have a open info policy on these things, it is your email addresses afterall. So no worries, everything is good.
GreySector RPG Superstar 2013 Top 8 |
Needless to say I nipped it in the butt...
BTW, the expression is 'bud' not 'butt'.
Daughters of Fury is sanctioned for PFS, but I don't see it in the modules section.
Would you please add it when you get a chance?
Thanks for that and all your hard work creating and maintaining this wonderful tool!
Carla the Profane |
Simon Kort wrote:Needless to say I nipped it in the butt...BTW, the expression is 'bud' not 'butt'.
I laughed hard once I noticed. Simon! Language!
CanisDirus |
Only one thing I've noticed that I or others I know aren't a fan of - is that we are logged out every time we use the tracker.
I tried to workaround that by saving the link to the Login screen, but when I do that, it doesn't actually log me in until I go to a different screen (and then have to go back to the login screen).
Very minor thing, all things considered, but figured I'd mention it at least.
Again, thanks for all the work you do on this!!!
Maglok |
1 person marked this as a favorite. |
Daughters of Fury is in. :)
And yeah while the login is quite secure it is not very good when it comes to remembering. The thing is that at the moment you can login on one browser/device and it will remember that browser/device for a while. Once you login somewhere else it will forget you were logged in in the other place. This has been bothering me for a while and I am the process of cranking up the options there.
I am rewriting most of the backend at the moment to run from PHP to Node (it is also a lot more memory efficient and this tool is growing really fast, 430+ accounts). I have a lot of experience with arranging logins through node. I am thinking of adding some alternative options like a facebook or twitter login, though I have not heard the email register option is a problem for anyone really.
Regardless, thanks Mike, it is on my radar. :)
Ascalaphus Venture-Lieutenant, Netherlands—Leiden |
mogmismo |
2 people marked this as a favorite. |
Hey Simon,
If I wrote a Tampermonkey / Greasemonkey script to create and download a json file of games from the "My Pathfinder Society -> Sessions" tab when logged in, would you be willing to write an importer for the same format? That would cut out a lot of the initial work people would have to do to get started.
I don't think that will break any guidelines, as it's no more requests to the Paizo server, and there are already some well-used Greasemonkey scripts that are promoted in the forums.
mogmismo |
Simon, I was able to kick something out as a proof of concept after work today. Tampermonkey / Greasemonkey script on GitHub just so you can see the data available. It is pretty rudimentary at the moment, but does give you json data. I'll clean it up over the next week or so.
I don't think I can make the json download as a file (browser restrictions, ya'know?) so I'll add in a button to "copy to clipboard" so that perhaps the tracker can have a "Paste JSON" textarea to ingest the data.
Maglok |
I put a quick import beta online.
Login then go to the user icon in the top right and choose import data. It does not actually import anything yet, but it will analyze whatever you give it.
It wants a valid JSON and it outputs a log beneath it.
Something like this is valid:
[
{
"date": "2016-03-13T08:00:00Z",
"EventCode": "72284",
"EventName": "Ei Con 2016",
"Session": "10",
"GM": "Maglok",
"Scenario": "#7–00: The Sky Key Solution (RPG)",
"Character": "",
"Faction": "—",
"Prestige": "GMn n —",
"campaign": "RPG",
"PFSNumber": "25642-",
"ScenarioNumber": "700"
},
{
"date": "2016-04-09T07:00:00Z",
"EventCode": "41481",
"EventName": "Home game",
"Session": "36",
"GM": "Maglok",
"Scenario": "#4–09: The Blakros Matrimony (RPG)",
"Character": "",
"Faction": "—",
"Prestige": "GMn n —",
"campaign": "RPG",
"PFSNumber": "25642-",
"ScenarioNumber": "409"
}
]
It will then try to determine as much from that as it can.
Something that I already noticed is that at the moment it is very hard to determine that you are playing a multitable special instead of a module. A normal scenario gives me a additional field to work with, but the specials 'look' the same as modules at the moment. Any chance I can get some more data? :)
mogmismo |
Ok, updates to the userscript, starting to shape up. It's prettier (I borrowed some site CSS from the sessiontracker), has links to copy the data into the clipboard, and works no matter how you navigate to the session tab on paizo.
The multitable specials are hard to identify via name. Few options here: I'm already parsing out the number (in the sky key solution's case, 700 for #7-00). I can format that number any way you want to match on Sessiontracker side, if that helps
Alternatively, I could put the scenario/module URL in the json, if you have that to match against.
Getting more data than is in the table currently is problematic: Simply scraping the data of the viewed page into JSON doesn't spider the paizo site, so think it's legit, If I followed the scenario link and got the next page's title, that would definitely be spidering the paizo site: not good.
Grab the latest version from github: PFS sessiontracker userscript
Maglok |
I am seeing a pattern that any scenario starts with a '#' OR contains the word 'Special' a Adventure Path starts with AP and a module is anything else. :)
I updated my side quite a bit as well, it will now do a test run and try to determine as much as it can from what you feed into it. Specifically it will also grab your characters based on the character number. :) Pretty sweet. Starting to look good dude. :)
EDIT: Hmm I can't seem to get this new version to run atm.
mogmismo |
I just noticed your edit, Simon, where you mentioned not getting it to run. Looking into it I found that there is another page (per user) on paizo that also shows all this data: https://secure.paizo.com/people/<=username=>/sessions Are you going to "My Pathfinder Society" -> Sessions tab?
The way I got it to work in the newer version is the script runs on any page that matches https://secure.paizo.com/* but immediately stops with no more processing if the page doesn't have a div in it with the content "Player Sessions" and "GM Sessions".
Also, I PM'd you (on this site), my full JSON so you have a second data set to look at. Can you PM me (or email me at mogmismo (at) gmail) with your browser version, platform and if you are using greasemonkey or tampermonkey? I'll test your exact platform, to make sure it is working.
Maglok |
Alright the server can now handle properly formatted sessiondata and it can determine nearly every content. If you input data and then scroll to the table it generates it will then, one by one, ask the server if the server knows what content it is.
With my tests so far the server can figure out about 90%. The remaining 10% are pieces of content with parts. Like The Quest for Perfection 1, 2 and 3. Also things like The Emerald Spire. This is because the paizo.com way of writing that down is not the same as how I have it in the database.
Still thinking of a way around that.
After it can detect everything I can then make a interface that will actually register those games as played for you.
mogmismo |
Ok, I made the unified version (GM and Player data in one json) with the parsing out the scenario number and season as requested. Moved the import from the "My Pathfinder Society" section of the site to the "Sessions" (leaving a note in the old place). I think it will be easier to have one import. Look for the "role" key/value in the json which will be either "GM" or "Player"
Also, as you requested "scenario" as a value, full name is now stored in "ScenarioName" instead of scenario to avoid collisions.
Maglok |
Alrighty, taking more discussion to the PMs. Awesome work so far Michael.
In other news I have been working hard on reworking the entire backend to be faster, more scaleable, better documented, more secure and simply more modern. It might not seem important, but it really is.
Since we have now got over 500 users I need those things to work well.
I am going to run a beta of the new backend soon and I can use some people who are interested in just testing out calls to the backend. So if you got some time a bit of technical knowhow, send me a PM. :)
Secondly I am thinking of just changing the URL to something more PFS sessiontracker related. The campaigncodex.com was just a domain I had laying around. I don't know what would be intuitive though, www.pfstracker.net maybe?
GreySector RPG Superstar 2013 Top 8 |