juan_gandhi: (VP)
[personal profile] juan_gandhi
Extracting PDF from Mozilla Browser - and Doing it Nicely

That's a detailed account of the thing I already posted a couple of days ago. And what I'm enjoying here is Functional Programming. I don't know why Stroustrup does not know that it works. Worked for me. :p

Date: 2013-10-21 04:47 pm (UTC)
From: [identity profile] sassa-nf.livejournal.com
тогда runsJS("return extractPdf()") andThen ... всегда успешен? (разве если сам вызов функции не смог вернуть даже 'JUST WAIT')

Date: 2013-10-21 05:20 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Ну этого мы не знаем. extractPdfContent() делает цепочку вызовов; по хорошему надо бы каждый результат внутри проверять и бросать исключение если чо.

Date: 2013-10-21 08:03 pm (UTC)
From: [identity profile] sassa-nf.livejournal.com
дык, вот это вот и не ясно. Вроде бы extractPdfContent просто возвращает фиксированную строчку, а собственно выделение контента в отдельном потоке? Или как? extractPdfContent дожидается завершения?

Я к чему это всё допытываюсь - уточнить, что именно может fail в extractPdfContent() (т.е. практически ничего не может - тривиальная функция?), объяснить, чего дожидается Thread.sleep(1000), куда девается бросаемое исключение и как потом преобразование в хексы работает с null или чего там вместо потока pdf.

Date: 2013-10-21 08:07 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
window.extractPdfContent = function() {
  dataPromise = PDFView.pdfDocument.getData()
  dataPromise.then (function(d) { extractedPdfAsString = intBuf2hex(d)}, function() { throw "Failed to extract pdf content" })
  return 'JUST WAIT'
}


может оказаться, что PDFView не определён
может рухнуть выборка pdfDocument
может рухнуть выборка getData
может оказаться, что then изменил сигнатуру, и рухнет при вызове.

Случается регулярно.

Date: 2013-10-21 08:11 pm (UTC)
From: [identity profile] sassa-nf.livejournal.com
ок, но потом куда девается throw "чё-то там"? Сама переменная остаётся нулём? А runJS потом завершается Bad, когда в хексы не получается нуль превратить?

Date: 2013-10-21 10:10 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Да, конечно.

Date: 2013-10-21 10:10 pm (UTC)
From: [identity profile] ivan-gandhi.livejournal.com
Он да, где-то в бекграунде возвращает, не в момент исполнения. Там же cps.
завалиться может любой шаг, где что-то откуда-то извлекают; а секунду я даю, чтобы threads, которых в данной задачке не так уж и много, все успели потрудиться. В принципе, можно и цикл всобачить, но по жизни не надо. Ведь данные-то уже тут, в джаваскрипте.

Исключение перебрасывается в драйвер селениума, а мой код их всех ловит и превращает в плохишей.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

June 2025

S M T W T F S
1 2345 6 7
8 9 10 11 121314
15161718 1920 21
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 05:01 am
Powered by Dreamwidth Studios