riderkick / FMD

Forked from https://sf.net/p/fmd/
GNU General Public License v2.0
720 stars 213 forks source link

How to Build FMD? #341

Closed kavin-90 closed 8 years ago

kavin-90 commented 8 years ago

I installed Packages . FPC is 3.0

OS : Windows 7x64 Lararus: 1.6.0 x64 (lazarus-1.6.0-fpc-3.0.0-win64) Packages are Installed i think.

Sorry for the trouble because i'm newbie.

Here is the error i'm getting. After checking Images it same error.

01 02 03

riderkick commented 8 years ago

Looks like the glyph property doesn't published yet in 1.6. I recall submitting this bug report to mantis. Maybe after 1.6 release. You can try to keep click continue loading, at the end it will ask to remove the unknown property, accept it. It just the icon for some edit button, without it the icon will be reverted to default. I'm using lazarus trunk. You can use fpcup to get latest trunk if you want. https://github.com/LongDirtyAnimAlf/Reiniero-fpcup

kavin-90 commented 8 years ago

I think it fixed by FPC 2.6.4 i386_win32 Now its fixed now there are warnings only for deprecated.

I will try to look now in errors

Bellow Errors i think its Related to Packages.

Deleted because it's too long. (riderkick)
riderkick commented 8 years ago

You should at least use fpc 3.0.0. fpc 3.x is utf8 aware by default. You may have a problem with Unicode stuff, since I remove utf8 flag in compiler options.

kavin-90 commented 8 years ago

I used but other project build success but FMD show error while build .It related to ppc386.exe with fmd think i've wrong version of Lararus so FPC is wrong.

I think i need to use Lararus i386_win32 version not x86_x64 version.

riderkick commented 8 years ago

Lazarus 1.6 can be used with fpc 2.6.4. But its more suitable with fpc 3.x, because its released with it. What is the error message?

kavin-90 commented 8 years ago

ppc386.exe does not exist in FPC 3.x x86_x64 version

riderkick commented 8 years ago

So you use lazarus win64 to target win32? Of course it doesn't come with fpc x86. You need to build/install it first. Or build the cross compiler. There is exist SEH problem with lazarus win64. So it's recommended to use lazarus win32 on win64 platform, and use cross compiler to build win64 binary.

kavin-90 commented 8 years ago

okay thanks.

riderkick commented 8 years ago

There is prebuild cross compiler for windows in lazarus sourceforge page So you just need to install lazarus-1.6.0-fpc-3.0.0-win32.exe and lazarus-1.6.0-fpc-3.0.0-cross-x86_64-win64-win32.exe or lazarus-1.6.0-fpc-3.0.0-win64.exe and lazarus-1.6.0-fpc-3.0.0-cross-i386-win32-win64.exe

There is SEH issue with lazarus win64, so it's recomended to use lazarus win32 with win64 cross compile in win64 environment.

kavin-90 commented 8 years ago

thanks @riderkick Now i'm getting Fatal Error regrading ssl_openssl

2nd error related to

FMDOptions.pas(244,14) Error: identifier idents no member "Options"
FMDOptions.pas(244,36) Error: identifier idents no member "Options"
FMDOptions.pas(244,47) Error: Identifier not found "ifoStripQuotes"
kavin-90 commented 8 years ago

any suggestion @riderkick ?

riderkick commented 8 years ago

Just remove that line, stripquotes is false by default anyway. https://github.com/riderkick/FMD/commit/20a03b0fc5641c26cce133400d9e5ec4c28f6658

kavin-90 commented 8 years ago

@riderkick what about ssl_openssl error?

Lazarus know where is ssl_openssl located but how to solve that fatal error?

riderkick commented 8 years ago

What the exact message did you receive?

kavin-90 commented 8 years ago

uBaseUnit.pas(23,63) Fatal: Cannot find ssl_openssl used by uBaseUnit.

again Sorry for the trouble

riderkick commented 8 years ago

This file doesn't listed in synapse package, you need to add it. I mean in laz_synapse.lpk. In package inspector there will be add files button. Or drag and drop from Windows explorer, if that possible. All synapse files is ANSI, it's recommended to convert it to utf8 first if you use FPC 3.x. Especially synacode.pas since there is Unicode character inside. I recall someone asking for it, just search the issues for "synacode". Sorry if I typed wrong, I reply from my phone.

kavin-90 commented 8 years ago

thanks ssl_openssl is now fixed :smile:

ImgInfos.pas(284,20) Error: identifier idents no member "ImageSize"

I'm suspecting i'm doing wrong from the start.

riderkick commented 8 years ago

ImageSize isn't inplementet yet in FPC 3.0.0. This piece is important for img2pdf. You can comment it out(adding // in front of the line), PDF creation will be broken of course. Just comment out every line that's not compilable, they're not implemented yet in FPC 3.0.0. Better grab the trunk version.

kavin-90 commented 8 years ago

okay thanks

trunk version from where?

Build Done

riderkick commented 8 years ago

https://github.com/LongDirtyAnimAlf/Reiniero-fpcup

kavin-90 commented 8 years ago

@riderkick After Build i got this error when run fmd.exe

Unhandled exception!
Application       : Free Manga Downloader
Version           : 0.9.75.0
Product Version   : Win32
Host Machine      : Windows 7 64-bit
Target CPU_OS     : i386_Win32
FPC Version       : 3.0.0
LCL Version       : 1.6.0.4
Path              : D:\Game\FMD\bin\fmd.exe
Process ID        : 4852
MainThread ID     : 4300
Thread ID         : 4300
Time              : 08/08/2016 21:53:45.669
Exception Class   : EAccessViolation
Message           : Access violation
  $006E0036
  $004383F8
  $004198FD
  $00418036
  $0041DDFF
  $00424502
  $004032B3
riderkick commented 8 years ago

Do you have all the dll required, openssl and sqlite. Just copy from fmd release. Build the debug version with debug info, there will be more info of error. Project options, build mode.

kavin-90 commented 8 years ago

i've working openssl in windows. sqlite i don't think i've.

Thanks.

Edit : It working now showing FMD box thanks.

@riderkick please give me tricks or docs of XPATH so i can convert my php regex to XPATH

2nd For JSON parse docs help appropriated.

Now i will start working on Japanese Official Sites :smile:

SundayWebEvery

Korean Naver

riderkick commented 8 years ago

I'm sure you can find it a lot with Google. I'm not an expert either, I'm just using simple select. It's similar to CSS selection, you can use CSS too. But xpath can be more direct. So it's more effective. Additionally, you can use only regex, but that would be slower on large document. Just look at modules folder, there's a lot of example there.

kavin-90 commented 8 years ago

Thanks but is there any example of script find something

key: "suunophasekouryaku/ep001-20160712192550",
manga_title: "nice", 

Like something?

I've Completed Manga Info Page that was easy but Image get is difficult because for it i need to read json and count pages and create image list and send to downloader.

Example of Json https://www.sunday-webry.com/assets/episodes/suunophasekouryaku/ep001-20160712192550/episode.json

riderkick commented 8 years ago

manga_title := XPathString('json(*).manga_title'); I don't see "key" in the source. If you want to get the image list for example h1536.jpeg

for v in XPath('json(*).pages()/files/h1536.jpeg') do
  PageLinks.Add(v.toString);

images count is PageLinks.Count, you don't need to specify the PageNumber, the downloadmanager will set it to PageLinks.Count if zero.

kavin-90 commented 8 years ago

Thanks but i'm confused about JSON how to get Json? because i need key for it to get. even i get key how i run get json like something than how XPATH will work?

It seems my build does not work correctly.

kavin-90 commented 8 years ago

@riderkick can you please list down your specification of Build Tool?

  1. Lazarus version,
  2. FPC version,
  3. OS,
  4. x64 or x86

so i can match setting as your so my build work like it need to work. Currently My Build does not make manga list maybe downloader does not work either.

riderkick commented 8 years ago

I'm using trunk version. FPC 3.1.1 Lazarus 1.7 It's should work, except the pdf creation, because of those commented out lines above. Do you even register the new module? add it to modulelist.inc.

I just added SundayWebry https://github.com/riderkick/FMD/commit/c8a9f1bdcda268d71e3c0fb194dd8c9f9f76d69d You can take a look at it as example. Note that I can strip a lot of codes by using regex. But for performance wise, I choose to do it manually. You should consider it too when writing a new module.

kavin-90 commented 8 years ago

Thanks. I also switch to regex because XPATH does not get some values.

You can check my scrapper repo there is my php scrapper which i'm trying to migrate in FMD.

riderkick commented 8 years ago

XPATH is used to parse web document, there is regex support in XPATH too. e.g. [//a/@href[matches(.,"regexexpr")] Internettools library that we use support xpath, xquery, css and jsoniq. My wrapper (txqueryenginehtml) only interface xpath and css, because that's what I used the most. You can extend it too. The purpose of using this library is for easier parsing web document with its tag, attributes etc. You shouldn't using regex against entire document, that will be resource consuming. https://github.com/benibela/xidel using the same library, it's written by the same person. You can use it to do some experiment. Additionally you can use "developers tool" that come with most browser. Using console $x("exprs") for xpath, and $$("expr") for css selector. The result should be similar when using the said library with fmd.

I write SundayWebry above just to encourage you, because you seems to have problems. Some example may help. ;)

kavin-90 commented 7 years ago

@riderkick i'm building FMD. BUILD successfully without an error when i open fmd exe i got this error.

fmd-error

riderkick commented 7 years ago

I'm using Lazarus trunk 1.7 Maybe there are some changes with it.

riderkick commented 7 years ago

VTV v4 with some fixes and looks for windows. virtualtreeview-new.7z.txt

riderkick commented 7 years ago

You may need to consider using the trunk version. I Usually use the latest trunk in the releases. Just checkout fpc and lazarus svn trunk:

svn http://svn.freepascal.org/svn/fpc/trunk fpc
svn http://svn.freepascal.org/svn/lazarus/trunk lazarus

and download the fpcbootstrap, trunk need at least fpcbootstrap 3.0.0 ftp://ftp.freepascal.org/pub/fpc/dist/3.0.0/bootstrap/i386-win32-ppc386.zip

Just look at my batch script to see the directory tree. Change it to your needs.

Do svn up if you want to get the latest update, just a few seconds. And recompile when you see something worth recompile. Recompile usually just take a few minutes. There is an update every day in the trunk. Something might worth checking.

My batch file to rebuild fpc + lazarus trunk. You need to have a working fpc and lazarus svn folder first with fpcbootstrap of course. fpc_laz_trunk_updatesvn.bat.txt recompilefpclaz.bat.txt