GithubHelp home page GithubHelp logo

josemmo / rosetta Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 2.31 MB

๐Ÿ“š A free (libre) Integrated Library System for the 21st century

License: GNU General Public License v3.0

CSS 7.36% JavaScript 3.21% PHP 73.45% HTML 15.29% Dockerfile 0.49% Shell 0.19%

rosetta's People

Contributors

dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar josemmo avatar

Watchers

 avatar  avatar  avatar

rosetta's Issues

Create minimal entities

Create minimal Rosetta entities skeleton to start testing search functionalities.

Such entities are AbstractEntity, AbstractWork, Book, Edition, etc.

Localization

Choose and implement a powerful and simple system/library for translating strings.

Covers provider

Implement a way for fetching entity covers/images as Z39.50 doesn't allow for this functionality.

Combine entities

Implement combineGroupedResults method from SearchEngine class.

Allowed memory size of 134217728 bytes exhausted

Fatal app crash, probably due to a stack overflow on infinite recursion in SearchQuery service:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 262144 bytes) in /rosetta/src/RosettaBundle/Query/SearchQuery.php on line 84

Internal entity ID

When getting results from providers, assign an internal unique ID to each entity:

[databaseId]:[remoteId]

For example, in the case of an INNOPAC provider with database ID equal to "uva":

uva:b1669313

Call to a member function addHolding() on boolean

if (!empty($rawResult->holdings)) {
foreach ($rawResult->holdings->holding as $holdingData) {
$location = new PhysicalLocation(); // TODO
$holding = new Holding($holdingData->callNumber, $location);
// TODO: set lent until / loanable
$target = $editions[''] ?? reset($editions);
$target->addHolding($holding);
}
}

PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function addHolding() on boolean in D:\Workspace\www\_GITHUB_\rosetta\src\RosettaBundle\Provider\Z3950.php:195
Stack trace:
#0 D:\Workspace\www\_GITHUB_\rosetta\src\RosettaBundle\Provider\Z3950.php(106): App\RosettaBundle\Provider\Z3950->parseResult(Object(SimpleXMLElement))
#1 D:\Workspace\www\_GITHUB_\rosetta\src\RosettaBundle\Service\SearchEngine.php(75): App\RosettaBundle\Provider\Z3950->getResults()
#2 D:\Workspace\www\_GITHUB_\rosetta\src\RosettaBundle\Service\SearchEngine.php(44): App\RosettaBundle\Service\SearchEngine->getResultsFromSources(Object(App\RosettaBundle\Utils\SearchQuery), Array)
#3 D:\Workspace\www\_GITHUB_\rosetta\src\Command\SearchCommand.php(57): App\RosettaBundle\Service\SearchEngine->search(Object(App\RosettaBundle\Utils\SearchQuery), Array)
#4 D:\Workspace\www\_GITHUB_\rosetta\vendor\symfony\console\Command\Command.php(255): App\Command\SearchCommand->execute(Object(Symfony\Component\Console\Input\ArgvI in D:\Workspace\www\_GITHUB_\rosetta\src\RosettaBundl
e\Provider\Z3950.php on line 195

Allow custom links

Add configuration section for setting custom featured links (homepage) and top links (header).

INNOPAC provider

Implement or delete INNOPAC provider, depending on reasons external to the development of this project.

IntlDateFormatter throws U_ZERO_ERROR

When encountered with non-representable UNIX dates (e.g. "1547-09-29"), IntlDateFormatter::format returns false.

Steps to reproduce:

  1. Visit details page for "Miguel de Cervantes Saavedra".

Create a new branch for development

Now that deployment is (almost) ready, all commits should be pushed to a new branch (eg develop) so that only code sent to master is deployed to the staging server.

Make Relation entity cacheable

The entity Relation is bit special as is read the same way from left to right as from right to left.

As far as I know, this arquitecture is not directly supported by Doctrine ORM, so some pre-processing should be done before giving control of the entity over to Doctrine.

Search result source

Design and implement a system for tracking the source (origin) of a search result (AbstractEntity).

Create SearchQuery class

Create SearchQuery to standardize queries between providers and allow for query conversion between protocols and syntaxes.

Item details page

Create item details template. Should allow for multiple templates depending on AbstractEntity type.

TMDB provider

Create provider for movies, documentaries and TV shows.

Cannot read property 'minify' of undefined

Update Node dependencies when patch is released to fix https://github.com/symfony/webpack-encore caused by https://github.com/terser-js/terser minifier:

app.cc2b6723.js from Terser
TypeError: Cannot read property 'minify' of undefined
    at minify (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/minify.js:175:23)
    at TaskRunner.boundWorkers (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/TaskRunner.js:68:40)
    at enqueue (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/TaskRunner.js:89:14)
    at tasks.forEach (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/TaskRunner.js:109:9)
    at Array.forEach (<anonymous>)
    at TaskRunner.run (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/TaskRunner.js:87:11)
    at TerserPlugin.optimizeFn (/home/travis/build/josemmo/rosetta/node_modules/terser-webpack-plugin/dist/index.js:224:18)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:12:1)
    at AsyncSeriesHook.lazyCompileHook (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/Hook.js:154:20)
    at hooks.additionalAssets.callAsync.err (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compilation.js:1311:36)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:9:1)
    at AsyncSeriesHook.lazyCompileHook (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/Hook.js:154:20)
    at hooks.optimizeTree.callAsync.err (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compilation.js:1307:32)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:9:1)
    at AsyncSeriesHook.lazyCompileHook (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/Hook.js:154:20)
    at Compilation.seal (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compilation.js:1244:27)
    at hooks.make.callAsync.err (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compiler.js:624:17)
    at _err0 (eval at create (/home/travis/build/josemmo/rosetta/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:11:1)
    at _addModuleChain (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compilation.js:1095:12)
    at processModuleDependencies.err (/home/travis/build/josemmo/rosetta/node_modules/webpack/lib/Compilation.js:1007:9)
    at processTicksAndRejections (internal/process/next_tick.js:74:9)

Translate search queries

Allow for advanced search query commands to be translated to the app language, as specified by the configuration of the environment. For example, this query string:

autor:'Cervantes, Miguel de' Y (titulo:%quijote% O titulo:'la galatea' O titulo:%galatea%)

Should be translated into this:

author:'Cervantes, Miguel de' AND (title:%quijote% OR title:'la galatea' OR title:%galatea%)

IMPORTANT NOTE: English search queries should always be accepted for accessibility.

Fix Travis CI build

For some reason, Travis hangs when building YAZ PECL extension. This extension is required for Rosetta to work and thus needs to be properly tested.

New entity image URL system

Manage entity image URLs internally instead of on the client side. This will improve performance (caching is a must) and removed Cross-Origin conflicts.

Uncohesive entity caching

Cached results in database from

php bin/console rosetta:search kurose

are different from

php bin/console rosetta:search kurose --databases=ub
php bin/console rosetta:search kurose

and in the end they should be the same.

Related to issue #45.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.