| Time |
Nickname |
Message |
|
00:11
🔗
|
bai |
oh yeah...so what you want to do is get a reference to the canvas, which we may already have somewhere, then call canvas.toDataURI('image/png') |
|
00:11
🔗
|
bai |
I'm just heading out on vacation but if you send me a link to the current script I can tweak it |
|
00:15
🔗
|
SketchCow |
Would I do this with firefox? |
|
00:16
🔗
|
SketchCow |
I'm on a headless firefox remember. |
|
00:16
🔗
|
SketchCow |
This can certainly wait to after your vacation |
|
00:16
🔗
|
SketchCow |
I've got plenty of things to amuse me before then |
|
00:16
🔗
|
SketchCow |
Before you get back |
|
00:19
🔗
|
SketchCow |
I mean, sounds like I should just use phantomjs |
|
00:49
🔗
|
bai |
it should work headless too yeah |
|
01:09
🔗
|
|
godane has left |
|
01:10
🔗
|
SketchCow |
Any experience with phantom? |
|
01:11
🔗
|
SketchCow |
I have a script now, cobbled from elsewhere, that takes 50 shots of the page. |
|
01:11
🔗
|
Vito` |
I tested with it before the latest 2.x series releases, it was missing some thing we needed |
|
01:11
🔗
|
Vito` |
in theory the current series should work, assuming WebGL isn't needed |
|
01:11
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/ |
|
01:11
🔗
|
SketchCow |
frames/ is the directory with shots |
|
01:12
🔗
|
SketchCow |
Obviously, it's not doing much |
|
01:12
🔗
|
SketchCow |
But I do have a pile of frames! |
|
01:12
🔗
|
SketchCow |
Vito` with the save |
|
01:12
🔗
|
SketchCow |
I want to click the element. I see all sorts of tricks for this |
|
01:13
🔗
|
SketchCow |
http://stackoverflow.com/questions/15739263/phantomjs-click-an-element |
|
01:14
🔗
|
Vito` |
the answers further down are the ones you want |
|
01:14
🔗
|
|
godane has joined #jsmess |
|
01:15
🔗
|
SketchCow |
2 |
|
01:15
🔗
|
SketchCow |
down vote |
|
01:15
🔗
|
SketchCow |
Document.querySelector(element).click()? |
|
01:16
🔗
|
Vito` |
page.evaluate(function() { |
|
01:16
🔗
|
Vito` |
document.getElementById('yourId').click(); |
|
01:16
🔗
|
Vito` |
}); |
|
01:16
🔗
|
Vito` |
says in the 2.x series that should work |
|
01:16
🔗
|
SketchCow |
Can you tell me where in archive.js I shove that? |
|
01:17
🔗
|
Vito` |
when are you trying to click on something |
|
01:17
🔗
|
Vito` |
oh I see |
|
01:18
🔗
|
SketchCow |
yeah |
|
01:18
🔗
|
SketchCow |
I'm going through the HTML to see what it calls the element. |
|
01:19
🔗
|
Vito` |
do that at the top of the first SetTimeout, before // Initial Frame |
|
01:20
🔗
|
Vito` |
document.getElementById("jsmessSS").click() |
|
01:20
🔗
|
Vito` |
that's what you want |
|
01:20
🔗
|
SketchCow |
Trying it |
|
01:22
🔗
|
SketchCow |
Good news is it worked. Bad news is something fails. |
|
01:22
🔗
|
SketchCow |
This is a step forward, tough - no mo guesstimating the location of the button. |
|
01:22
🔗
|
SketchCow |
And we can pump something into a funnel |
|
01:23
🔗
|
Vito` |
there's a way to get it to dump the browser console to your terminal |
|
01:24
🔗
|
Vito` |
http://phantomjs.org/api/webpage/handler/on-console-message.html |
|
01:24
🔗
|
Vito` |
stick that before your page.open |
|
01:25
🔗
|
Vito` |
if this isn't an entire remote instance, or if you can open a port, you might also be able to just use Chrome: http://phantomjs.org/release-1.5.html |
|
01:25
🔗
|
Vito` |
"Improved debugging" gives a couple other options |
|
01:26
🔗
|
Vito` |
adding that page.onError bit would probably also help |
|
01:28
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/archive.js |
|
01:28
🔗
|
SketchCow |
Yeah, that's not outputting anything |
|
01:30
🔗
|
SketchCow |
(added some comments to keep track of things.) |
|
01:31
🔗
|
SketchCow |
Let's focus on something else for a second... JUST grabbing the canvas element for the screengrab. |
|
01:31
🔗
|
SketchCow |
page.render('frames/screenshot'+(frame++)+'.png', { format: "png" }); |
|
01:33
🔗
|
SketchCow |
I see our canvas is named canvas |
|
01:36
🔗
|
SketchCow |
<div id="canvasholder"> |
|
01:36
🔗
|
SketchCow |
<canvas id="canvas" style="width:560px;height:384px"></canvas> |
|
01:36
🔗
|
SketchCow |
Actually |
|
01:36
🔗
|
SketchCow |
<div id="emulate"> |
|
01:36
🔗
|
SketchCow |
<center class="posrel"> |
|
01:36
🔗
|
SketchCow |
<a id="jsmessSS" href="#loading" onclick="return AJS.emulate()"><div id="screenshot"><img src="/serve/msdos_shareware_fb_CLPMT208/CLPMT208_screenshot.gif" alt="[screenshot]"/></div><img class="ghost" src="/images/start.png" title="Click to Begin" data-placement="bottom" data-toggle="tooltip"></a> |
|
01:36
🔗
|
SketchCow |
<div id="canvasholder"> |
|
01:36
🔗
|
SketchCow |
<canvas id="canvas" style="width:560px;height:384px"></canvas> |
|
01:36
🔗
|
SketchCow |
<div id="gamepadtext"></div> |
|
01:36
🔗
|
SketchCow |
</div> |
|
01:36
🔗
|
SketchCow |
</center> |
|
01:37
🔗
|
SketchCow |
</div><!--/#emulate--> |
|
01:37
🔗
|
SketchCow |
So in theory one could have just that I guess |
|
01:38
🔗
|
SketchCow |
(I'm playing inside the command line stuff. |
|
01:38
🔗
|
SketchCow |
I'm sure browserfs is asking for storage and it's telling it rightly to fuck off |
|
01:39
🔗
|
Vito` |
are you not seeing any errors? |
|
01:39
🔗
|
SketchCow |
I am not |
|
01:39
🔗
|
Vito` |
page.onError = function (msg, trace) { |
|
01:39
🔗
|
Vito` |
console.log(msg); |
|
01:39
🔗
|
Vito` |
trace.forEach(function(item) { |
|
01:39
🔗
|
Vito` |
console.log(' ', item.file, ':', item.line); |
|
01:39
🔗
|
Vito` |
}) |
|
01:39
🔗
|
Vito` |
} |
|
01:39
🔗
|
Vito` |
add that before your page.open block |
|
01:43
🔗
|
SketchCow |
root@teamarchive1:/0/PHANTOM# phantomjs --local-storage-path=./.localstorage archive.js |
|
01:43
🔗
|
SketchCow |
root@teamarchive1:/0/PHANTOM# |
|
01:44
🔗
|
SketchCow |
ls |
|
01:44
🔗
|
SketchCow |
ls -l |
|
01:44
🔗
|
SketchCow |
root@teamarchive1:/0/PHANTOM# du -sh .localstorage/ |
|
01:44
🔗
|
SketchCow |
8.0K .localstorage/ |
|
01:44
🔗
|
SketchCow |
Definitely saw it, used it |
|
01:45
🔗
|
SketchCow |
I'm trying lots of command-line options. |
|
01:46
🔗
|
SketchCow |
http://phantomjs.org/api/command-line.html is where I'm getting them |
|
01:46
🔗
|
SketchCow |
My theory is our item downloads are stopped. I realize you'e going in from the other end, to print all errors. |
|
01:46
🔗
|
Vito` |
I mean, you should be seeing what the errors are at this point |
|
01:49
🔗
|
SketchCow |
Is the top of it wrong or something? |
|
01:49
🔗
|
Vito` |
http://stackoverflow.com/a/31338510 might be what you want for extracting just the canvas |
|
01:49
🔗
|
Vito` |
replace #hplogo with #canvas |
|
01:49
🔗
|
Vito` |
I thought the placeholder canvas got replaced with something else after it loaded, though |
|
01:50
🔗
|
Vito` |
no your JS looks right |
|
01:54
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/frames/screenshot44.png |
|
01:54
🔗
|
SketchCow |
THAT is good news |
|
01:54
🔗
|
SketchCow |
(Yes, I realize the crapola on the right |
|
01:54
🔗
|
Vito` |
probably only need to do that once |
|
01:54
🔗
|
Vito` |
move the two blocks under // Do just the canvas of the emulator |
|
01:55
🔗
|
Vito` |
to above the // Clicks on the big happy button block |
|
01:56
🔗
|
SketchCow |
Done |
|
01:56
🔗
|
SketchCow |
Now I'm going to switch URLs |
|
01:56
🔗
|
SketchCow |
(Just to see) |
|
01:57
🔗
|
SketchCow |
(Still fails) |
|
01:59
🔗
|
SketchCow |
Screengrabs temporarily off because I wanted to see what "emulate" had in it. |
|
01:59
🔗
|
SketchCow |
Fixed |
|
02:01
🔗
|
SketchCow |
Continuing my attack on command line options |
|
02:07
🔗
|
SketchCow |
I'm sure it's failing to save something locally |
|
02:08
🔗
|
SketchCow |
Just got to figure out what in the settings isn't granting it. |
|
02:09
🔗
|
SketchCow |
Problems falling like rain |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - setupFrame "" |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - updateLoadingProgress: 10 |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - setupFrame "" |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - updateLoadingProgress: 100 |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - setupFrame "" |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - updateLoadingProgress: 10 |
|
02:11
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - setupFrame "" |
|
02:12
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/fs.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:12
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/system.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:12
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] FileSystem - _open: ":/modules/webpage.js" QMap(("mode", QVariant(QString, "r"))) |
|
02:12
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] WebPage - updateLoadingProgress: 100 |
|
02:12
🔗
|
SketchCow |
2017-03-04T02:09:51 [DEBUG] CookieJar - Purged (session) "PHPSESSID=0k21i93cseu81p0qqaap2k1a26; domain=.archive.org; path=/" |
|
02:12
🔗
|
SketchCow |
-- |
|
02:12
🔗
|
SketchCow |
Not a lot of anything helpful, although it's "working" even if it fails |
|
02:18
🔗
|
SketchCow |
pinged db48x |
|
02:18
🔗
|
Vito` |
SyntaxError: Expected token '}' ia802608.us.archive.org/8/items/jsmess_keyboard_v2/arcade-williams.js:11 |
|
02:18
🔗
|
Vito` |
got the remote debugger working |
|
02:19
🔗
|
Vito` |
sometimes these things can be flaky about the JS they'll accept, was just using one that crapped out on heavily minified JS |
|
02:19
🔗
|
Vito` |
was fine on the unminified stuff |
|
02:21
🔗
|
SketchCow |
https://github.com/ariya/phantomjs/issues/12867 was an example of that |
|
02:22
🔗
|
SketchCow |
I'm switching to an Apple II program |
|
02:23
🔗
|
SketchCow |
I'm using timestamps against the thing to know we're not doing poorly here. |
|
02:23
🔗
|
SketchCow |
I'm this close to adding a command line call for it and cleaning up frames after each hit. |
|
02:24
🔗
|
Vito` |
if it's barfing on our JS though it's never gonna run the apps |
|
02:24
🔗
|
Vito` |
that said, isn't this on a machine with xvfb already? |
|
02:25
🔗
|
SketchCow |
Agreed which is why I swapped away rom using jsmesskeyboard_v2 |
|
02:25
🔗
|
SketchCow |
The others don't. |
|
02:25
🔗
|
SketchCow |
So if you run it now, it won't hit the minified |
|
02:29
🔗
|
Vito` |
huhn |
|
02:29
🔗
|
Vito` |
still failed on that URL |
|
02:30
🔗
|
Vito` |
but no errors that would suggest why |
|
02:30
🔗
|
* |
Vito` shrugs |
|
02:30
🔗
|
Vito` |
phantomjs is not super reliable |
|
02:31
🔗
|
Vito` |
if you have xvfb already, you might instead consider |
|
02:31
🔗
|
Vito` |
http://www.nightmarejs.org |
|
02:32
🔗
|
Vito` |
or https://slimerjs.org which is Gecko-based |
|
02:33
🔗
|
Vito` |
in my experience trying to use Phantom for other things, if you can't get it working pretty quick, you probably won't, it's pretty flaky and unreliable |
|
02:50
🔗
|
SketchCow |
My response would be along the lines of how much you're up for helping. |
|
02:50
🔗
|
SketchCow |
I'm out of my depth, although as we can see the actual task is pretty simple |
|
02:53
🔗
|
Vito` |
sorry, I'm not prepared to work on this at all |
|
02:53
🔗
|
Vito` |
I'm just saying since it's not working out of the box, all effort may be wasted, because phantomjs is not super reliable |
|
02:54
🔗
|
SketchCow |
Well, in this case, it's consistently unreliable. :) |
|
02:55
🔗
|
SketchCow |
I pinged db to see if he has insight |
|
02:56
🔗
|
SketchCow |
slimer's not going to be better than HEADSHOT (my bash script) |
|
03:01
🔗
|
SketchCow |
Installing Node |
|
03:03
🔗
|
SketchCow |
"npm install nightmare" says it all |
|
03:13
🔗
|
SketchCow |
Installed. Invoking it.... issues |
|
03:18
🔗
|
SketchCow |
If when bai becomes available he might have ideas where the loader's breaking down. |
|
03:18
🔗
|
SketchCow |
This feels a LOT like it's the.... hey hmmm |
|
03:25
🔗
|
SketchCow |
Yeah, will need help |
|
03:25
🔗
|
SketchCow |
Slime's a mess though. |
|
03:28
🔗
|
SketchCow |
Thanks again, Vito` |
|
03:35
🔗
|
|
Ravenloft has quit IRC (Read error: Connection reset by peer) |
|
04:01
🔗
|
|
db48x has joined #jsmess |
|
05:27
🔗
|
|
db48x` has joined #jsmess |
|
05:29
🔗
|
|
db48x has quit IRC (Read error: Operation timed out) |
|
05:31
🔗
|
SketchCow |
db48x`: Hi |
|
06:12
🔗
|
|
X-Scale has quit IRC (Quit: Try HydraIRC -> http://www.hydrairc.com <-) |
|
09:53
🔗
|
db48x` |
SketchCow: howdy |
|
09:53
🔗
|
|
db48x` is now known as db48x |
|
10:25
🔗
|
|
wdna has joined #jsmess |
|
11:02
🔗
|
SketchCow |
We had an adventure today! |
|
11:02
🔗
|
SketchCow |
Vito` helped with making screenshots work after a fashion |
|
11:02
🔗
|
SketchCow |
Like, I can run phantomjs and it snaps stuff. |
|
11:03
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/ |
|
11:03
🔗
|
SketchCow |
As you can see in the frames/ directory, we actually screenshot! |
|
11:04
🔗
|
SketchCow |
But the loading fails. |
|
11:04
🔗
|
SketchCow |
I suspect it's something stupid. |
|
11:08
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/archive.js is the phantomjs script |
|
11:08
🔗
|
SketchCow |
Culled from the corpses of a thousand bastard scripts and Vito`'s skills |
|
11:15
🔗
|
SketchCow |
Gotta take a quick exercise walk - let me knowif you have ideas/questions |
|
12:46
🔗
|
|
wdna has quit IRC (Quit: WeeChat 1.7) |
|
12:48
🔗
|
|
wdna has joined #jsmess |
|
15:47
🔗
|
|
wdna has quit IRC (Quit: WeeChat 1.7) |
|
15:53
🔗
|
db48x |
:) |
|
15:54
🔗
|
db48x |
any output in the console? |
|
16:00
🔗
|
db48x |
your script looks workable |
|
19:20
🔗
|
SketchCow |
No output on the script. I think I can port it to a port though |
|
19:29
🔗
|
SketchCow |
pacman.js was me using tilde.club/~pacman to just force stuff without all that k-razy IA stuff |
|
19:29
🔗
|
SketchCow |
To see if it's a CORS thing |
|
19:30
🔗
|
SketchCow |
Let me try metacade |
|
19:30
🔗
|
Vito` |
db48x: I wasn't getting any errors, which makes me think it's a weird phantomjs compatibility problem |
|
19:32
🔗
|
SketchCow |
http://teamarchive1.fnf.archive.org/PHANTOM/frames/screenshot1.png |
|
19:32
🔗
|
SketchCow |
So that's with zero IA schmutz |
|
19:35
🔗
|
SketchCow |
That's using http://assets.metacade.com/emulators/pacman.html |
|
20:06
🔗
|
db48x |
a lot of different exceptions could cause that |
|
20:07
🔗
|
db48x |
you're catching exceptions and printing them with console.log |
|
20:07
🔗
|
db48x |
what's in that console output? |
|
20:07
🔗
|
Vito` |
nothing |
|
20:08
🔗
|
Vito` |
I ran it locally and got nothing in the console |
|
20:08
🔗
|
Vito` |
or in the remote debugger |
|
20:08
🔗
|
db48x |
print something unconditionally and make sure that much is working? |
|
20:08
🔗
|
Vito` |
it prints other stuff, and I see like CSS errors and stuff in the remote debugger console |
|
20:09
🔗
|
Vito` |
but no JS errors or failures |
|
20:09
🔗
|
db48x |
hmm |
|
20:09
🔗
|
db48x |
ok, in the remote debugger, make sure you're debugging the webpage and tell it to stop on all exceptions, even ones that are caught |
|
20:10
🔗
|
Vito` |
I can upload the script I was using if you want to try that |
|
20:11
🔗
|
db48x |
I saw it, but I don't have phantomjs all set up |
|
20:11
🔗
|
db48x |
if that fails, you could just single-step through the loader.js code |
|
20:11
🔗
|
db48x |
starting around line 955 |
|
20:12
🔗
|
db48x |
time for me to sleep though |
|
21:23
🔗
|
|
X-Scale has joined #jsmess |
|
23:07
🔗
|
SketchCow |
Yeah, sorry my time is so shifted here |