Rakirina kataloga pirtûkxaneya malê ya MyLibrary 4.3

Katalogera pirtûkxaneya malê ya MyLibrary 4.3 derket. Koda bernameyê bi C++ hatiye nivîsandin û di bin lîsansa GPLv3 de heye (GitHub, GitFlic). Navrûya bikarhêner a grafîkî bi karanîna pirtûkxaneya GTK4 hatiye bicîhkirin. Bername ji bo karanîna li ser pergalên xebitandinê yên malbata jêrîn hatiye adaptekirin: Linux и WindowsJi bo bikarhênerên Arch Linux Skrîpteke avakirinê ji bo pakêta qedandî di AUR de heye. Ji bo bikarhêneran Windows Sazkerek ceribandinî heye.

MyLibrary pelên pirtûkan di formatên fb2, epub, pdf, djvu, odt, txt, û md de katalog dike, her du jî rasterast gihîştina wan û di arşîvan de pakkirî ne (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), û bêyî ku pelên orîjînal biguherîne an cîhê wan biguherîne, databasa xwe diafirîne. Formata fbd jî ji bo katalogkirinê heye (pelek pirtûkek ku di arşîvekê de digel pelek bi dirêjkirina fbd ku etîketa danasîna fb2 dihewîne tê pakkirin). Formata fbd dikare her pelê hilîne, ne tenê pirtûkan. Yekparebûna berhevokê û kontrola guhertinê bi afirandina databasek ji hevkêşeyên pel û arşîvê têne şopandin.

Lêgerîna pirtûkan li gorî pîvanên cihêreng (paşnav, paşnav, navnavê nivîskar, sernavê pirtûkê, rêzefîlm, celeb) û xwendina wan bi bernameya ku di pergalê de ji bo vekirina formatên pelên têkildar bi xwerû hatî saz kirin ve hatî bicîh kirin. Dema ku hûn pirtûkekê hildibijêrin, ger hebe kurte û bergê pirtûkê têne xuyang kirin. Nîşandana navnîşek pelên ku di berhevokê de cih digirin tê piştgirî kirin; navnîşa pirtûkên ku di pelek taybetî de hene; lîsteya nivîskarên berhevokê; lîsteya pirtûkên ku bikarhêner ji bo wan notan çêkirine.

Operasyonên cûrbecûr bi berhevokê re mimkun in: nûvekirin (tevahiya berhevokê tê şopandin û mîqdarên heşê yên pelên berdest têne verast kirin), nûvekirina bilez (bêyî ku mîqdarên heşê ji nû ve werin hesab kirin), hinardekirin û importkirina databasa berhevokê, zêdekirin û rakirina pirtûkan ji berhevokê, zêdekirina peldankên pirtûkan li berhevokê, zêdekirina arşîvên pirtûkan li berhevokê (tevî pakkirina pirtûkan û/an peldankan di dema pêvajoya zêdekirinê de), kopîkirina pirtûkan ji berhevokê bo peldankek kêfî, û veguheztina pirtûkan ji berhevokekê bo berhevokek din. Guherandina destanî ya tomarên pirtûkan di databasê de heye. Mekanîzmayek nîşankirinê ji bo gihîştina bilez a pirtûkan hatiye afirandin. Mimkun e ku notên xwerû ji bo pirtûkan werin afirandin. Vebijarkî navrûyek ji bo afirandin û girêdana pêvekan heye. Belgekirin ji bo pirtûkxaneyên MLBookProc, MLPluginIfc, û XMLParserCPP (di projeyê de hene) dikare were vekirin ger ew di dema pêvajoya avakirinê de hatibe afirandin.

Guhertinên girîng:

  • Rêbazên ji bo xebitandina bi pelên XML re di pirtûkxaneya XMLParserCPP de hene (beşek ji pirtûkxaneya MLBookProc, dikare bi tevahî serbixwe were bikar anîn).
  • Belgekirin ji bo pirtûkxaneya XMLParserCPP hatiye afirandin.
  • Çewtiyên dema ku pelên XML-ê yên bi formata xelet hatine pêvajokirin hatin rastkirin.
  • Pirtûkxaneya MLBookProc ji bo bikaranîna std::exception wekî nîşaneya çewtiyê hatiye guhertin.
  • Hin rêbaz û çînên pirtûkxaneya MLBookProc wekî kevnar hatine ragihandin (ji bo hûragahiyan li belgeyan binêre).
  • Di avakirina std::thread-based de, belavkirina eşkere ya têlan li seranserê coreyên pêvajoyê ji bo hin fonksiyonan hatiye zêdekirin.
  • Nîşandana bergên pirtûkan leztir bûye.
  • Performansa fonksiyonên lêgerînê baştir kir.
  • Karê baştirkirî bi kodkirinên nivîsê re.
  • Kontrolkirina hebûna pelan di arşîvan de li fonksiyona nûvekirina berhevoka bilez hatiye zêdekirin.

Pêşniyarên karanîna bernameyê jî hatine nûvekirin. Bi taybetî, divê ev tişt werin destnîşan kirin:

  • Panela lêgerînê ya "Paşnav" dikare wekî panelek lêgerînê ya gerdûnî ji bo nivîskaran were bikar anîn. Ev tê vê wateyê ku bikarhêner dikarin paşnav, navê pêşîn, navê bav û/an jî navekî xelet ê nivîskar binivîsin, ne tenê paşnavê wan.
  • Pirtûkên di koleksiyonê de dikarin li derve werin danîn. serverDi vê rewşê de, bikarhêner hewce ne ku gihîştina xwe mîheng bikin da ku server Bi karanîna protokola SMB, peldanka sereke ya berhevokê li ser makîneyên xerîdar bi karanîna gvfs, kio-fuse, an jî yên wekhev ve girêbide (eger pêwîst be, pejirandin ji bo dema danişînê diparêze). Ger her tişt bi rêkûpêk were mîheng kirin, MyLibrary dê bikaribe bi peldankên girêdayî torê re mîna yên herêmî, bêyî mîhengên zêde bixebite. Ji bo lezandina herikîna kar, piştî girêdana bi rêya protokola SMB, berhevok tenê dikarin li ser yek PC-yê werin afirandin, piştî vê yekê fonksiyonên hinardekirin û hinardekirina databasa berhevokê dikarin werin bikar anîn.

Herwiha, em dixwazin balê bikişînin ser nûvekirina pêveka MLInpxPlugin, ku ji bo importkirina koleksiyonan ji pelên .inpx hatiye çêkirin (di bin lîsansa GPLv3 de li ser altlinux.space û GitHub peyda dibe). Ji bo bikarhênerên Arch Linux Skrîpteke avakirinê ji bo pakêta qedandî di AUR de heye. Guhertinên di guhertoya nû de zêdekirina dabeşkirina têlan a eşkere li seranserê coreyên pêvajoyê di avakirina bingeha std::thread de vedihewîne.

Her wiha hêjayî gotinê ye ku nûvekirinek ji bo pêveka MLFBDPlugin, ku ji bo afirandina pelên FBD hatî çêkirin, heye. Guhertoya nû pêvekê diguhezîne da ku pirtûkxaneya XMLParserCPP ji bo tomarkirina pelan di formata XML de bikar bîne, û her weha hin xeletiyan jî rast dike.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster