Skip to content
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

Original Ideas/Fixme page #106

Closed
nodiscc opened this issue Jan 27, 2015 · 22 comments
Closed

Original Ideas/Fixme page #106

nodiscc opened this issue Jan 27, 2015 · 22 comments

Comments

@nodiscc
Copy link
Member

nodiscc commented Jan 27, 2015

I found this list at http://sebsauvage.net/wiki/doku.php?id=php:shaarli:ideas

It's a collection of the ideas proposed by sebsauvage and contributors back when the project was hosted on sebsauvage.net. Some are interesting, some are fixed already, and some are probably wontfix :) I'm pasting it here as a reference; feel free to comment/propose decisions for each item. If a particular item needs discussion, please open an issue specifically for it.

[EDIT 2015-09-15] Sort issues by resolution, add formatting (@virtualtam)
[EDIT 2016-02-15] Cleanup old entries, update https://lite6.framapad.org/p/3I7CN1Drms (@nodiscc]

Status: Done

Status: Open

Batch operations

Allow mass operations (on a group of bookmarks) (eg. add/remove a tag, delete, change private flag…)

Internationalization (translation)

Prepare source for translation.
Sniff browser locale/language ($_SERVER['HTTP_ACCEPT_LANGUAGE']):

  • automatically choose corresponding translation if available.
  • automatically format date. done (Note: some servers do not have locales like “fr_FR” installed… this includes mine :-/ )

Weekly, monthly pages

  • Add weekly and monthly pages like the daily page.
  • Filter links by date (between two dates ?)
  • Add better navigation in the “Daily” page (calendar ?)

Refactoring

Re-write shaarli entirely (better object model, and use namespaces to avoid conflicts)

Admin tools

Add statistics ? (database size, number of links (private/public), free space on webspace) (No access statistics)

Allow 1-click Shaarli upgrade in admin interface.

Search

When using fulltext search, highlight the words in results.

QRCode

Allow configuration of QRCode generation URL in config screens.

Thumbnails

Custom thumbnails

Status: Won't fix

Go multi-user

  • One data file (Not one data file per user)
  • Entries can be:
    • Public : Anyone can see them.
    • Shared : Only logged-in users can see them.
    • Private : Only the user who created them can see them.

API

Create Shaarli API:

  • Post links (using HMAC authentication)
  • Extract data (search by tag, full text), in json format.
  • Others ?

Disable thumbnails

Allow the visitors to disable thumbnails.

See addons such as https://requestpolicycontinued.github.io/, in the future all thumbs will be cached

Undecided

Bookmarklet

  • When using the bookmarklet button on a blank page (eg. about:blank), create a self-pointing entry (like “Add link” > Enter).
  • When using the bookmarklet and the login fails in the popup window, properly redirect to the initial &post=… URL.
  • Find a way, when you find an interesting entry on another shaarli, to import easily the entry in your shaarli (adding a “via” in description pointing to the permalink of the original entry).

Misc.

Copy of the DONE, REPORTED, and WONTFIX sections from https://lite6.framapad.org/p/3I7CN1Drms

DONE
/////// After adding/editing a link, go back to the same page and scroll to the item which has been edited (using an anchor). ////////// **DONE**
////// Write proper user manual, in a separate wiki page (installation, bookmarklet usage, keyboard  speed-up tips, how to use Shaarli as a pastebin/online notepad, who to use Shaarli as twitter, how to customize Shaarli (colors, logo, templates…), backup/restore, how to filter picture wall or RSS/ATOM feed by tag or text search…) ////// **DONE**
/////// Correct tag encoding in tag cloud. ////// **DONE**
////// Make Shaarli HTML/CSS code W3C compliant (apply idleman patch) ////// **DONE**, thanks @virtualtam @ArthurHoaro //////
///// In config, add an option to make the Shaarli private: The Shaarli will not show any link, except if you are logged in. (This can also be used to temporarly “close” a shaarli). ////// **DONE**
////// In RSS/ATOM feed, add a parameter in URL in order to choose which URL to put in <link> tag: Permalink or final link. done.
////// Sniff browser locale/language ($_SERVER['HTTP_ACCEPT_LANGUAGE']): => done (see autoLocale() )////// 


Reported
////// Add weekly and monthly pages like the daily page. ////// Accepted, see below //////
////// Add better navigation in the “Daily” page (calendar ?)////// Accepted, see https://github.com/shaarli/Shaarli/issues/161
////// Prepare source for translation. ////// Accepted, https://github.com/shaarli/Shaarli/issues/21
////// Filter links by date (between two dates ?) ////// Accepted, see https://github.com/shaarli/Shaarli/issues/160 and https://github.com/shaarli/Shaarli/issues/246 
////// When using fulltext search, highlight the words in results. //////  Accepted https://github.com/shaarli/Shaarli/issues/205
////// Show new links since last visit ? (maybe using a cookie which records the linkdate of the latest news ?) //////  => Accepted https://github.com/shaarli/Shaarli/issues/244
////// Images and video embedding: Show a collapsed space the user can open to see the links video or image.//////  => https://github.com/shaarli/Shaarli/issues/245
////// Add statistics ? (database size, number of links (private/public), free space on webspace) (No access statistics) //////  https://github.com/shaarli/Shaarli/issues/247
////// Allow 1-click Shaarli upgrade in admin interface. //////  https://github.com/shaarli/Shaarli/issues/248
/////// 24. Add better navigation in the “Daily” page (calendar ?) Discussed in #106. Is there an open issue? ACCEPTED- https://github.com/shaarli/Shaarli/issues/161 ////

Wontfix
////// Archive a copy of the link (page, image…) ? ////// Wontfix, see below, added to the doc, external tool //////
////// Allow spaces in tags. ////// Wontfix, see https://github.com/shaarli/Shaarli/issues/70 //////
////// Allow the visitors to disable thumbnails. ////// WONTFIX, you can use addons such as https://requestpolicycontinued.github.io/, in the future all thumbs will be cached //////
////// Automatic backups (every week ?) (how ? Copy file under a name with date ? email ?) ////// WONTFIX, see below, added to the doc, external tool //////
//////  Go multi-user: //////  WONTFIX, https://github.com/shaarli/Shaarli/issues/15
////// Add paging to picwall ////// ? => lazyloading
////// WONTFIX 40. Archive a copy of the link (page, image…), Won't fix.,  - Third party tool (nodiscc)////// 
/////// 33. Try to support description attribute in Scuttle exports. WONTFIX, scuttle userbase is very small. A thrid-party conversaion script can do the job (nodiscc) ///////
//////// 25. Allow spaces in tags. Won't fix for now.  - No. (nodiscc) ////////////// 
////// WONTFIX 1. multi-user: Won't fix for now as see in #15.  - possible way proposed in  https://github.com/shaarli/Shaarli/issues/204. Multi user related : One data file (Not one data file per user),  Entries can be: Public : Anyone can see them., Shared : Only logged-in users can see them.,   Private : Only the user who created them can see them.//////
////// WONTFIX ~~Backup, archive~~ > - Automatic backups (every week ?) (how ? Copy file under a name with date ? email ?) > - Archive a copy of the link (page, image…)? > - Other export/import options ? (CSV, RDF, single HTML file… ?) > - Support Firefox json export (because Firefox HTML export does not export tags (!)). See [nodiscc/shaarchiver](https://github.com/nodiscc/shaarchiver)//////
//// WONTFIX ~~Tags from outer space~~ > Allow spaces in tags.- ~~#70 - Comma-separated tags~~////
@virtualtam
Copy link
Member

Thanks for starting this thread! ;-)
As some of these points have been regularly mentioned by / discussed with fellow Shaarli users & readers, here are some thoughts about them...

Go multi-user

Shaarli being mono-user has both pros & cons:

  • pros: personal, easy to setup, no bothering about user management / access rights;
  • cons:
    • in case you want several persons to contribute to the same instance, the credentials have to be shared (argh!),
    • else, there has to be one Shaarli instance for each user; it could be more comfy to have a single instance, and provide each user/group its own sharing space.

Having the possibility to provide each user his/her own space on the same instance has some benefits:

  • easier sharing,
  • less administration workload: setup, updates, virtualhosts, DNS, etc.,
  • better accessibility: easy creation of Shaarli spaces for non-computerscientist users ;-)

Automatic backups

That would be great! We're currently running cron jobs that backup the data dir and tags it with a timestamp, which is OK... except if your server crashes and you lose your data.
Possible solutions could be:

  • send the (encrypted?) data as a mail attachment; being mostly text, it's very lightweight (1000 links => 200 Ko);
  • nerd-friendly: commit the changes on a (private) SCM repository ;-)

Sniff browser locale/language

Does Shaarli even have translation support? Having GNU Gettext / Transifex / <your fav l10n/i18n module> implemented would be an awesome starting point.

Filter links by date (between two dates ?)

Accurate dates may not be very convenient here, maybe providing user friendly date ranges would suffice? E.g. last N weeks or last N months.

Add better navigation in the “Daily” page (calendar ?)
Add weekly and monthly pages like the daily page.

I know of very few people who actually use the Daily page (despite its nice, vintage CSS); a better navigability could make it a bit more popular:

  • several views: daily, weekly, monthly (organizer-like view);
  • calendar view.

Add statistics? (database size, number of links (private/public), free space on webspace)

A tools / admin page with stats would be nice; there isn't much data to be displayed, though...

Archive a copy of the link (page, image…)?

+1 for an Autoblog-like plugin ;-)
Most 404s we've seen come from multimedia content (YouTube, Dalilymotion, Soundcloud, etc.) that is deleted or made private for miscellaneous reasons. For those, it would be cool to be able to generate a list / command list to feed a media downloader (e.g. youtube-dl, which features an impressive list of content extractors).

Re-write shaarli entirely (better object model, and use namespaces to avoid conflicts)

<:trollface:>
Isn't complete code rewrite the Holy Grail of any developer?

Honestly, we'd love to, using a modern framework's buit-in features (e.g. Symfony/Zend for clean PHP, Django/Pylons for cool Python, for ), responsive design (hello Bootstrap, Ink & co!), and so on...

But spare time has become scarce lately, and we feel no urge in fixing something that has been running smoothly for years :neckbeard:

Additionally, this mainly depends on the project's goals: should it stay KISS? should it become more feature-rich? Is the wheel tired of being invented a Nth time?
</:trollface:>

@nodiscc
Copy link
Member Author

nodiscc commented Feb 19, 2015

Hi @virtualtam nice to have your insight! I have to think a bit more about some points you mentioned, but here are some ideas. Incoming wall of text.

Automatic backups

We shouldn't let Shaarli handle these. A cron job on the server can handle sending mail attachments, committing and pushing to a VCS, rsyncing to remote machine ... whatever you can imagine. This can also be done from a client using software like https://github.com/nodiscc/shaarchiver (early draft, but you can already use https://github.com/nodiscc/shaarchiver/blob/master/export-shaarli.py to do periodic backups on your laptop; this is what I use). The data is already easily exportable (just copy the file tree, or export HTML/query RSS), I think we should let backup software handle the backups.

We're currently running cron jobs that backup the data dir and tags it with a timestamp, which is OK... except if your server crashes and you lose your data.

A backup with no offsite copy is not a backup :)

Having GNU Gettext / Transifex / implemented would be an awesome starting point.

Yes! i18n support would be great and is probably a major step once we're done with 0.9beta.

Filter links by date (between two dates ?)

I think either that or your idea (user-friendly ranges) would be fine; how should it look like in the UI ?

several views: daily, weekly, monthly (organizer-like view);

Yes definitely, and it's related to the previous point (if we can efficiently filter links by date this is doable)

Archive a copy of the link (page, image…)? [...] generate a list / command list to feed a media downloader (e.g. youtube-dl

There is support for this in shaarchiver, basically just run the bookmarks-fetcher.py on your HTML export and it will youtube-dl your media. I still have to add proper support for downloading pages (see the issues). Contributions/ideas are welcome. I have it set up to only attempt youtube-dl on links that are tagged with specifig tags, but it could be configured to force youtube-dl on all links.

Note that there is currently support in Shaarli for requesting previous versions of your links from archive.org. This doesn't guarantee that your link will already be archived though, but merely doing a curl https://web.archive.org/save/$url allows you to save your page. I also have an issue open about this in the archival tool.

Maybe doing archive.org save requests could also be added as a Shaarli plugin? Need to check my plugin-system branch again. I think AutoBlog and respawn also support archiving a link by only sending the a POST request, which can definitely be done through a plugin. Idk if they allow saving media/videos.

Add statistics? (database size, number of links (private/public), free space on webspace)

Number of links is already displayed at the top right, but we could differentiate between private and public links on the tools page, yes. db size may be interesting, you can also check it by looking at the filesize of your datastore.php. So there is that.

About free space, unless your cache and pagecache dirs grow huge, there is little interest in adding this (my cache dirs are very small, but it may be interesting to post sample sizes from different installs). I think it's the job of your host's admin panel to display this. A button to clear caches could be nice though.

using a modern framework's buit-in features (e.g. Symfony/Zend for clean PHP, Django/Pylons for cool Python, for

Yes Shaarli is totally hackish But as you said it's been running well and we actually have fixed some nastyness, so why not continue? ;) As I said in the general discussion thread, there's a nice bookmark sharing app written in python: https://github.com/bookieio/Bookie. But it's not the same complexity/maintenance/hosting/time cost to setup/maintain this and yep, we're short on time :)

@e2jk
Copy link

e2jk commented Feb 19, 2015

I agree with your comments. Just a quick note about i18n: I am more of a proponent of vanilla gettext support, but it was also proposed to use RainTPL's own array structure. Anyway, you can find some starting snippets for the translation at sebsauvage#18 (comment)

@nodiscc
Copy link
Member Author

nodiscc commented Feb 19, 2015

I agree about using GNU Gettext. The reference editor is poedit but the Transifex web platform also supports translating projects using gettext.

@virtualtam
Copy link
Member

Yay for Gettext!
Transifex is great for community projects with a consequent UI, though I don't think it will be necessary for Shaarli (there aren't too many strings to get translated).

Thanks @nodiscc for pointing to Shaarchiver! 😄
+1 for linking it in the Shaarli docs!

@nodiscc
Copy link
Member Author

nodiscc commented Feb 22, 2015

Summary (I'll update the list on top)

Regarding backups:

Regarding links archiving/mirrorring:

  • Tools like autoblog are already able to follow RSS feeds and backup items (add it to the doc?).
  • I'll add a section to the wiki once shaarchiver is decent enough, and supports webpage archiving (currently only media exports work), and is able to generate HTML indexes.
  • For batch archiving by archive.org, I'll add this to shaarchiver (curl https://web.archive.org/save/$url, https://github.com/nodiscc/shaarchiver/issues/6). For now you can use Shaarli's archive.org functionality (needs to be moved to a plugin), clicking on archive.org links archives your link there.

Regarding statistics:

  • Add counters for number of public and private links to the tools page (please report a bug for this, low priority)
  • Add counters for datastore and cache directories to the tools page (please report a bug for this, low priority)

Regarding translations:

  • Feel free to propose i18n systems using gettext or RainTPL as pull requests. Low priority for now.

Regarding a rewrite:

  • A rewrite is possible as another project. Added Bookie as an alternative to the wiki. We'll keep the current codebase and keep improving over it (code additions and deletions)

About weekly/monthly views:

  • Please open a bug report about this (low priority, should be easy to add to the daily page)

@nodiscc
Copy link
Member Author

nodiscc commented Feb 25, 2015

About multi-user @virtualtam this was marked as wontfix: #15. Just create multiple shaarlis. No need for multiple virtualhosts or DNS entries, just put them in separate directories, and enable dir indexes:

myserver.com/
    shaarlis/
        bob/         <-bob's shaarli instance
        virtualtam/  <-virtualtam's shaarli instance
        someoneelse/ <-someoneelse's shaarli instance

Edit: however, there may be room for a "Restricted" type of link: These are only accessible via their direct URL, like Owncloud does when you select "Share by link" on a file. It generates a long, random URL, at which you can access the file. Low priority.

@virtualtam
Copy link
Member

@nodiscc: agreed, though the use case I had in mind is a bit different (and goes beyond Shaarli'scope, IMHO); I was mostly reporting it 'cause multi-user Shaarlis were asked quite regularly by friends/users ;-)

@nodiscc
Copy link
Member Author

nodiscc commented Feb 25, 2015

@virtualtam I think a server-side (shell or python) script to maintain shaarli "farms" would be nice for those users, with the ability to create/delete shaarlis, reset passwords, ... Another worthwile side-project :)

Edit: there's a Shaarli farm at https://www.shaarli.fr/my.php; it would be cool to contact the author to see if he's aware of our fork and could share his code with us.

Edit2: another farm at http://shaarferme.etudiant-libre.fr.nf/index.php

@nodiscc
Copy link
Member Author

nodiscc commented Feb 25, 2015

@DMeloni @Oros42 ping since you are involved in maintaining these farms.

@Oros42
Copy link

Oros42 commented Feb 25, 2015

Pong !
Interesting discussions but I'm realy busy this week :-/

@DMeloni
Copy link

DMeloni commented Feb 25, 2015

Hi,
some users run on the same instance of shaarli on shaarli.fr, this is just a fork available here :
https://github.com/DMeloni/Shaarli

0/ the user connects on https://www.shaarli.fr/my/{pseudo}/
1/ a rewrite rule (apache2) create a 'pseudo' parameter
2/ forked shaarli creates a directory named 'data-pseudo' and specific cookie for avoiding connection on the other accounts

The fork is probably unsecure, this is why it would be dangerous to merge it on the official project.
Plus there is no administrator interface (rm -r data-pseudo is actualy the only manner to delete an user).

I'm sure shaarli could be a software much more powerful if multiple instances could be linked together.

all these web servers just waiting to love ;-)

@nodiscc
Copy link
Member Author

nodiscc commented Feb 25, 2015

@DMeloni ok so this fork enables creating Shaarlis on-the-fly through a web interface, using the same base directory, but a different datadir for each user (DMeloni@2154b3e). This is different from a multi-user Shaarli in my view. While it's a nice hack I don't think we would merge this.

You may want do to sanity checks because your code passes user-provided params (?pseudo) to PHP global vars (not saying this is unsafe, I din't have time to check)

Would you like to merge our code to provide the latest fixes to your users? As you edited index.php it won't merge properly though, but we could work together to separate your tool from Shaarli, this way we would have what I proposed:

script to maintain shaarli "farms" would be nice for those users, with the ability to create/delete shaarlis, reset passwords, ... Another worthwile side-project :)

while giving you the ability to stay up-to-date with the latest developments.

What do you think? We could discuss this on Gitter: https://gitter.im/shaarli/Shaarli (in english) or on this temporary IRC channel (english or french) if you like oldschool IRC: http://demo.relayjs.com/?server=irc.freenode.net#shaarli

This thread is beginning to grow :) We can always reopen another if it grows too large.

@e2jk
Copy link

e2jk commented Feb 25, 2015

or on this temporary IRC channel (english or french) if you like oldschool IRC

Note that the gitter chatroom is also reachable via IRC, if needed: https://irc.gitter.im/

@mrjovanovic
Copy link

automatically choose corresponding translation if available.

This would be profoundly annoying, IMO. Plenty of users (me included) like to select different locales for different types of software. More often than not, their system locale is English, while the browser locale is different. What about using Shaarli on others'/public computers? It just seems like this choice would be better left to the user.

@virtualtam re: Daily page

several views: daily, weekly, monthly (organizer-like view);
calendar view.

This is a great idea.

@virtualtam @nodiscc

Filter links by date (between two dates ?)
I think either that or your idea (user-friendly ranges) would be fine; how should it look like in the UI ?

How about this?
date search suggestion

@virtualtam
Copy link
Member

@mrjovanovic this looks like a really convenient feature!

we could start with a simple date filtering in PHP, and move to a fancier Javascript UI when Shaarli's codebase has become a bit more mature :)

@nodiscc
Copy link
Member Author

nodiscc commented Mar 11, 2015

automatically choose corresponding translation if available

Forwarded to #121, let's discuss there.

several views: daily, weekly, monthly (organizer-like view); calendar
we could start with a simple date filtering in PHP

Yep, can you open another issue about this? The daily/weekly/monthly pages could be generated by date filtering system suggested by @virtualtam

Filter links by date (between two dates ?)

I like the idea of doing it via a GET parameter in the first time. @mrjovanovic I like the look of your date picker, but this should be done using the plugin system. It adds a field to the search bar which we can't clutter too much (you had to shrink the search field in your screenshot ...) @e2jk already suggested adding a "Add link" field there (#147) and we can't have that much by default.

Can you open another issue about this too?

@nodiscc nodiscc modified the milestone: future Mar 13, 2015
@nodiscc
Copy link
Member Author

nodiscc commented Mar 18, 2015

Let's triage the remaining list items before 0.9beta. Comments welcome

@nodiscc nodiscc added this to the 0.9beta milestone Mar 18, 2015
@ArthurHoaro
Copy link
Member

Ok, I'll try to contribute on this. Handle 50+ ideas in a single issue isn't possible, so I've created a pad with my opinion on all of this.

I think our first objective is to create an issue for every item we want to discuss further.

https://lite6.framapad.org/p/3I7CN1Drms

It would be nice if you could review it.

@nodiscc
Copy link
Member Author

nodiscc commented Jun 25, 2015

Thank you, this is much better. I've added some points to the pad, will check back later.

@ArthurHoaro
Copy link
Member

I answered some of your points.

I will switch a few "UNDECIDED" to "Reporting" by opening related issues.

@nodiscc
Copy link
Member Author

nodiscc commented Nov 24, 2017

I have re-read this issue and the pad, and I believe every point mentioned has been debated and either fixed, reported in another issue, or marked wontfix. So I think #106 can be closed :) Huge. thanks. everyone.

!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants