-
Notifications
You must be signed in to change notification settings - Fork 296
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
API / programmable access #16
Comments
Why not use a existing API such as delicious as a base ? |
@pmaziere I think the need for a real API is not there. This report was about interfacing Shaarli with external tools (archivers, browsers, etc.). This functionality should depend on these tools themselves (eg. wallabag should be able to auto-save articles from an RSS feed, which is the standard way of accessing a Shaarli's data. https://github.com/nodiscc/shaarchiver uses HTML exports, but should support RSS feeds soon). Most of the linked bugs are now fixed, or there is a proposed solution. Write access would only require implementing another URL parameter ( This issue will hopefully be closed soon (see remaining bugs) |
I will now close this as it was a "tracking" issue and most related bugs are now closed, or a solution has been proposed. Feel free to reopen issues for specific bugs or requests, and check the links in the original issue text. |
I consider the http get parameters, html form content and page flow the API.
|
#316 also related PHPUnit itself is not designed to run functional tests, as you need to:
This is rather the domain of SeleniumHQ, which can be used both for verifying:
Some info:
Any feedback/PR on using Selenium for PHP browser automation is more than welcome, this would be great to have for v0.8.0 to help with templating and W3C compliance checks |
Looks a bit hairy but may be worth while: http://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP |
test multiple shaarli versions at once: https://github.com/mro/phptestdemo |
The tests mentioned above show a strange pattern for 'wrong password' login failures with certain, mostly recent, releases: https://travis-ci.org/mro/Shaarli-API-test/builds/78946245 I suspect php caching which I'm clueless about in travis environments. Any ideas? |
#342 opened to focus on functional testing :) |
…arli#113, shaarli#342, https://github.com/mro/ShaarliOS/issues/1 Transferred from https://github.com/mro/Shaarli-API-test, could become a git module for version-independant compatibility tests.
…arli#113, shaarli#342, https://github.com/mro/ShaarliOS/issues/1 Transferred from https://github.com/mro/Shaarli-API-test, could become a git module for version-independant compatibility tests.
When we try to access the atom feed and have no bookmarks, it raised the following exception : ``` Call to a member function reorder() on array /webroot/application/bookmark/BookmarkFileService.php:143 #0 /webroot/application/feed/FeedBuilder.php(106): Shaarli\Bookmark\BookmarkFileService->search(Array, 'public', false, false, true) shaarli#1 /webroot/application/front/controller/visitor/FeedController.php(47): Shaarli\Feed\FeedBuilder->buildData('atom', Array) shaarli#2 /webroot/application/front/controller/visitor/FeedController.php(20): Shaarli\Front\Controller\Visitor\FeedController->processRequest('atom', Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#3 [internal function]: Shaarli\Front\Controller\Visitor\FeedController->atom(Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#4 /webroot/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#5 /webroot/vendor/slim/slim/Slim/Route.php(281): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#6 /webroot/application/front/ShaarliMiddleware.php(55): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#7 [internal function]: Shaarli\Front\ShaarliMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#8 /webroot/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Array, Array) shaarli#9 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#10 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#11 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#12 /webroot/vendor/slim/slim/Slim/Route.php(268): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#13 /webroot/vendor/slim/slim/Slim/App.php(503): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#14 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#15 /webroot/vendor/slim/slim/Slim/App.php(392): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#16 /webroot/vendor/slim/slim/Slim/App.php(297): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#17 /webroot/index.php(177): Slim\App->run(true) shaarli#18 {main} ```
When we try to access the atom feed and have no bookmarks, it raised the following exception : ``` Call to a member function reorder() on array /webroot/application/bookmark/BookmarkFileService.php:143 #0 /webroot/application/feed/FeedBuilder.php(106): Shaarli\Bookmark\BookmarkFileService->search(Array, 'public', false, false, true) #1 /webroot/application/front/controller/visitor/FeedController.php(47): Shaarli\Feed\FeedBuilder->buildData('atom', Array) #2 /webroot/application/front/controller/visitor/FeedController.php(20): Shaarli\Front\Controller\Visitor\FeedController->processRequest('atom', Object(Slim\Http\Request), Object(Slim\Http\Response)) #3 [internal function]: Shaarli\Front\Controller\Visitor\FeedController->atom(Object(Slim\Http\Request), Object(Slim\Http\Response), Array) #4 /webroot/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) #5 /webroot/vendor/slim/slim/Slim/Route.php(281): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#6 /webroot/application/front/ShaarliMiddleware.php(55): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#7 [internal function]: Shaarli\Front\ShaarliMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#8 /webroot/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Array, Array) shaarli#9 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#10 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#11 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#12 /webroot/vendor/slim/slim/Slim/Route.php(268): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#13 /webroot/vendor/slim/slim/Slim/App.php(503): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#14 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#15 /webroot/vendor/slim/slim/Slim/App.php(392): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#16 /webroot/vendor/slim/slim/Slim/App.php(297): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#17 /webroot/index.php(177): Slim\App->run(true) shaarli#18 {main} ```
Page storage sebsauvage/Shaarli#58: Page storage-> external tool, https://github.com/nodiscc/shaarchiver is WIPExport features sebsauvage/Shaarli#57: Export featuresclosed/ghostreadityourself sebsauvage/Shaarli#66: readityourselfimplemented in Plugin system #52Command-line authentication sebsauvage/Shaarli#69: Command-line authenticationclosedFunctionnality to give crawlers possibility to know some options sebsauvage/Shaarli#96: Functionnality to give crawlers possibility to know some optionsnot a Shaarli bug, plugin if neededMister Wong Import tweaks sebsauvage/Shaarli#146: Mister Wong Import tweaks-> added to https://github.com/shaarli/Shaarli/wiki#importing-from-mister-wongAdd sharing support for Wallabag (formerly poche) sebsauvage/Shaarli#167: Add sharing support for Wallabag-> implemented in Plugin system #52We already have RSS and ATOM available as a read-only API.
This can be used for many things (I have a python script that fetches my RSS feed, locally saves pages tagged
readlater
, downloads media formusic
andvideo
tags, images matching some URLs (*.jpg
,imgur.com
)...). The only missing features for my point of view are:Authenticated access (access to private links, HTML export functionality)The text was updated successfully, but these errors were encountered: