README.txt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. ━━━━━━━
  2. FULCI
  3. ━━━━━━━
  4. Table of Contents
  5. ─────────────────
  6. 1 Introduction
  7. .. 1.1 Features
  8. 2 Dependency
  9. .. 2.1 Programs
  10. .. 2.2 Libraries
  11. ..... 2.2.1 C
  12. ..... 2.2.2 Common Lisp
  13. 3 Install
  14. 4 Usage
  15. .. 4.1 Searching
  16. ..... 4.1.1 Search movie copies
  17. ..... 4.1.2 Searching titles
  18. .. 4.2 Import data from imdb
  19. .. 4.3 Import data from Wikipedia
  20. 5 Notes
  21. .. 5.1 Important note
  22. 6 BUGS
  23. 7 Translations
  24. 8 License
  25. 9 Privacy
  26. 10 Contributing
  27. 11 NO WARRANTY
  28. 1 Introduction
  29. ══════════════
  30. Fulci aims to be a simple software to organize your dvd/blu-ray/vcd
  31. collection.
  32. 1.1 Features
  33. ────────────
  34. • Adding titles or copies and perform search with an [expression
  35. language];
  36. • generating barcode to identify a copy of a movie;
  37. • optionally import data from Wikipedia
  38. [expression language] See section 4.1
  39. 2 Dependency
  40. ════════════
  41. 2.1 Programs
  42. ────────────
  43. • sbcl compiler;
  44. • sqlite3;
  45. • wish graphical shell (>= 8.6);
  46. • GIMP;
  47. • gv (postscript viewer).
  48. 2.2 Libraries
  49. ─────────────
  50. 2.2.1 C
  51. ╌╌╌╌╌╌╌
  52. • libsqlite3
  53. • pslib1
  54. • libssl
  55. It is recommended to install both the libraries and their headers file
  56. (usually the `*-dev' package).
  57. 2.2.2 Common Lisp
  58. ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
  59. The script (see 3) provided will [download] and install all the needed
  60. libraries:
  61. • alexandria;
  62. • cl-ppcre;
  63. • sqlite;
  64. • sxql;
  65. • yacc;
  66. • parse-number;
  67. • cl-syntax;
  68. • lquery;
  69. • local-time;
  70. • osicat;
  71. • cl-colors2;
  72. • nodgui;
  73. • drakma;
  74. • log4cl;
  75. • clunit2;
  76. • cl-i18n;
  77. • cl-jpeg;
  78. • cl-json;
  79. • osicat;
  80. • babel;
  81. • marshal;
  82. • cl-pslib;
  83. • cl-pslib-barcode;
  84. • cl-csv.
  85. [download] See section 9
  86. 3 Install
  87. ═════════
  88. 1. optional step needed only if you have not already the configure
  89. script, you will need `autotools' for that.
  90. ┌────
  91. │ $ autoreconf -fiv
  92. └────
  93. 2. run `configure' and resolve the missing dependencies (if any)
  94. ┌────
  95. │ $ ./configure
  96. └────
  97. 3. This script will download and install the library manager and the
  98. library on your home dir.
  99. ┌────
  100. │ $ ./quick_quicklisp.sh
  101. └────
  102. This step is optional if you have already installed quicklisp, in
  103. this case just load the [dependencies] using the client installed
  104. on your computer.
  105. 4. build the executable:
  106. ┌────
  107. │ $ make
  108. └────
  109. 5. install on your system:
  110. ┌────
  111. │ $ make install
  112. └────
  113. 6. run the software!
  114. ┌────
  115. │ $ fulci
  116. └────
  117. [dependencies] See section 2.2.2
  118. 4 Usage
  119. ═══════
  120. 4.1 Searching
  121. ─────────────
  122. 4.1.1 Search movie copies
  123. ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
  124. Type a search criteria to start a searching matching the string you
  125. typed in any field of a movie copy object. You can start a query with
  126. an `<' followed by a number to lookup the latest `n' copies inserted
  127. into the database.
  128. Finally you can use a simple expression language if your query starts
  129. with a: `!' ([BNF] following):
  130. ┌────
  131. │ EXPRESSION := EXPRESSION AND EXPRESSION |
  132. │ EXPRESSION OR EXPRESSION |
  133. │ '(' EXPRESSION ')' |
  134. │ TERM
  135. │ TERM := KEY = VALUE | KEY < VALUE | KEY > VALUE
  136. │ KEY := 'director' | 'year' | 'title' | 'note' | 'tags' | 'genres' | 'country' |
  137. │ 'building' | 'room' | 'storage' | 'shelf'
  138. │ VALUE := [a-z,A-Z,0-9,%]
  139. │ AND := 'and'
  140. │ OR := 'or'
  141. │ = := '='
  142. │ < := '<'
  143. │ > := '>'
  144. └────
  145. Example:
  146. All the horror movie stored in room `237' or `1408':
  147. ┌────
  148. │ ! room = 237 or room = 1408
  149. └────
  150. [BNF] https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_form
  151. 4.1.2 Searching titles
  152. ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
  153. For searching a title you can type a string to search in any field or
  154. you can use a simple expression language similar as can be done for
  155. copies.
  156. ┌────
  157. │ EXPRESSION := EXPRESSION AND EXPRESSION |
  158. │ EXPRESSION OR EXPRESSION |
  159. │ '(' EXPRESSION ')' |
  160. │ TERM
  161. │ TERM := KEY = VALUE | KEY < VALUE | KEY > VALUE
  162. │ KEY := 'director' | 'year' | 'title' | 'note' | 'tags' | 'genres' | 'country'
  163. │ VALUE := [a-z,A-Z,0-9,%]
  164. │ AND := 'and'
  165. │ OR := 'or'
  166. │ = := '='
  167. │ < := '<'
  168. │ > := '>'
  169. └────
  170. Example:
  171. All the horror movie from [Lucio Fulci]
  172. ┌────
  173. │ ! director = lucio%fulci and genres = horror
  174. └────
  175. where `%' means: "a variable number of any character".
  176. [Lucio Fulci] https://en.wikipedia.org/wiki/Lucio_Fulci
  177. 4.2 Import data from imdb
  178. ─────────────────────────
  179. People at [IMDB (Internet Movie Database)] are kind enough to provide
  180. a [dump of their database in Tab separated format value]. This
  181. software can import those data to build a very comprehensive local
  182. database.
  183. Just download the data, unzip, and follow the instruction under
  184. `Import > From TSV'.
  185. Please note that the license to use the aforementioned data is
  186. restrictive (from a FLOSS POV), check the [license] before use the
  187. data.
  188. [IMDB (Internet Movie Database)] https://www.imdb.com/
  189. [dump of their database in Tab separated format value]
  190. https://datasets.imdbws.com/
  191. [license] https://www.imdb.com/interfaces/
  192. 4.3 Import data from Wikipedia
  193. ──────────────────────────────
  194. Fulci can fetch movie data and movie image from Wikipedia when a title
  195. is added or updated.
  196. Please note that even if the movie textual data (director, run-time)
  197. are usually released under a permissive license often the image data
  198. are not, it is the user responsibility to comply with their local
  199. copyright law when this data are used.
  200. In any case please do *not* distribute this program together with a
  201. database built on top of non redistibutable data. If i discover that
  202. this happened i will remove the software from my repository.
  203. The others features of the software supposed to be simple to grok i
  204. think.
  205. 5 Notes
  206. ═══════
  207. • only [SBCL] compiler is supported;
  208. • please do *not* ask for features that are a violation of a website
  209. terms of service (scraping a website that does not allow that, for
  210. example);
  211. • please also do *not* ask for features that make the program
  212. interacts with website that wants an user account creation as a
  213. precondition to allow access to the data, i do not want this
  214. software to support users profiling/tracking;
  215. • I am not a lawyer.
  216. [SBCL] http://sbcl.org/
  217. 5.1 Important note
  218. ──────────────────
  219. Older version of the software stored database in: `$HOME/.fulci', but
  220. starting from version `0.9.1' it is stored under:
  221. `$XDG_DATA_HOME/fulci/', if `$XDG_DATA_HOME' is not set on your system
  222. `$HOME/.local/share' is used.
  223. 6 BUGS
  224. ══════
  225. Please file bug reports on the [notabug repository].
  226. [notabug repository] https://notabug.org/cage/fulci/
  227. 7 Translations
  228. ══════════════
  229. ━━━━━━━━━━━━━━━━━━━━━━━━━━
  230. language progress note
  231. ──────────────────────────
  232. italian 100%
  233. ━━━━━━━━━━━━━━━━━━━━━━━━━━
  234. You are [very welcome] to help with translations, the translation
  235. template can be found in `po/fulci.pot' in gettext format, there are a
  236. bunch of free software editor to work with this file or you can just
  237. [use emacs].
  238. [very welcome] See section 10
  239. [use emacs]
  240. https://www.gnu.org/software/gettext/manual/html_node/PO-Mode.html
  241. 8 License
  242. ═════════
  243. This program is released under GNU General Public license version 3 or
  244. later (see COPYING file).
  245. The program use data and code from other sources, please see
  246. LICENSES.org for credits.
  247. Although any efforts has been put to make the list of credits
  248. exhaustive, errors are always possible. Please send correction to
  249. cage-dev at twistfold dot it.
  250. 9 Privacy
  251. ═════════
  252. This software does collect nothing from its users in places different
  253. from their local computer.
  254. But it *does* start some https connections to the Wikipedia servers;
  255. this feature is totally optional and started only after an explicit
  256. user action. However if you plan to use this feature please check the
  257. [Wikipedia privacy policy] before.
  258. Moreover launching `quick_quicklisp.sh' will contact
  259. [https://www.quicklisp.org/], check the [quicklisp sources] for
  260. details.
  261. [Wikipedia privacy policy]
  262. https://meta.wikimedia.org/wiki/Privacy_policy
  263. [quicklisp sources] https://beta.quicklisp.org/quicklisp.lisp
  264. 10 Contributing
  265. ═══════════════
  266. Any help is appreciated. If you intend to contribute please point your
  267. browser to the [issue tracker] or file a [pull request].
  268. [issue tracker] https://notabug.org/cage/fulci/issues
  269. [pull request] https://notabug.org/cage/fulci/pulls
  270. 11 NO WARRANTY
  271. ══════════════
  272. fulci: a program to organize your movies collection Copyright (C) 2019
  273. cage
  274. This program is free software: you can redistribute it and/or modify
  275. it under the terms of the GNU General Public License as published by
  276. the Free Software Foundation, either version 3 of the License, or (at
  277. your option) any later version.
  278. This program is distributed in the hope that it will be useful, but
  279. WITHOUT ANY WARRANTY; without even the implied warranty of
  280. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  281. General Public License for more details.
  282. You should have received a copy of the GNU General Public License
  283. along with this program. If not, see [http://www.gnu.org/licenses/].
  284. [http://www.gnu.org/licenses/] http://www.gnu.org/licenses/