ticket summary priority component milestone type owner status created _changetime _description _reporter 82 """safety level""/ or some type of data for (mature) content moderation" minor programming enhancement accepted 2011-05-30T18:41:00Z 2016-10-08T12:56:27Z "{{{ #!rst See `http://www.flickr.com/help/filters/ `_ but without the gendered ""your mom"" stuff. Let's not gender our safety levels :) }}}" Christopher Allan Webber 126 sharing and permissions minor programming enhancement accepted 2011-07-03T14:03:00Z 2016-09-15T09:47:37Z "{{{ #!rst There is a mapping between the items in your collection and the individuals allowed to view them. Those are permissions. We'll begin implementing these by assigning each media entry an array of authorized viewers, listed by username. Eventually, these could be openids for federation, but that's beyond the scope of this ticket. Because writing a list each time you submit an item would give us the blues, we'll have a default list editable by the user. That list of users will be used to populate the permissions array on the item. Now, you may not always want the default list, so it's important to make it easy to specify which of your 10 million fans get to see your cat with whip cream on its head. For that, each user will be able to maintain groups of individuals. These groups can be given any name. Suggestions would be friends, family, etc. Those will be enabled by default but can be removed in favor of other group names. So, when creating an item, you see an array of labels representing your default sharing profile. It could be as simple as 'everyone', or as complex as you like. Modify the sharing labels by adding or removing individual names, or group names. Individuals and groups can also be added to specifically exclude, but let's save that for a future ticket. When you submit the item the labels are interpreted and converted to individuals for the item's permissions array. When called upon for viewing, the item looks up the viewer in its permissions array and allows viewing or coyly stays hidden, depending on whether the viewer gets to see the item. This should apply for every view - galleries, thumbnails, etc. The fun part is that the groups the user maintains may be flagged as private. This means you don't have to pull your hair out trying to be political about who gets to be in which group. Chris's example is great - :: SmoothBro might not show off his ""saturday night swingers"" group publicly because maybe he doesn't even want people to know about that, esp his parents. Breathe in. Breathe out. Explore the space! This ticket does not cover notifications, only viewing permissions. }}}" Caleb Davis 162 add quoting support to tagging minor programming enhancement accepted 2011-07-25T00:09:00Z 2016-09-16T02:44:27Z "{{{ #!rst Tagging (`#360 `_) needs to be iterated on. This ticket addresses support for quoting. What are the expected behaviors? In the following examples, user input is underlined, and resulting tags are indented. - In the simple case (assuming comma-delimited text), the user has a single pair of quotes embedded within the input, such as: meta,'yo dawg, I heard you like delimiters...',humor u'meta' u'yo dawg, I heard you like delimiters...' u'humor' - what about mixed quotes? (eg user wants *you're* in the tag) meme,""I don't even..."",humor u'meme' u'I don't even' u'humor' - then, as Will noted in IRC, some users may wish to tag using xml or hierarchical organization schemes. At what point does supporting quoting become complex enough to warrant using a plugin? **tl;dr - introduce support for tag delimiter(s) within a tag. Efforts towards native gmg support go here. Add a new ticket for plugin work** Feel fix this ticket if I'm missing the point or the point is not clear. }}}" Caleb Davis 164 "Consider cache ""table""" trivial programming enhancement accepted 2011-07-26T15:33:00Z 2014-08-21T12:19:48Z "{{{ #!rst Currently, computed (processed) data is stored alongside ""original"" data in the database. Most notable example are comments and the rendered html for them. There are various reasons for not storing them at the same place: - If the options for processing (the created html) changes, a migration must be added to convert all existent entries. Or if the user changes the options, they have to let every entry be updated. Think of large installations! With a cache style setup, one simply drops the cache and it will be recreated as needed. - It's cleaner layout of the db. - Also maybe an option for backup: Many people only want the ""original"" stuff in the backup, as everything else can be regenerated as needed. An alternative is to drop the pre-rendered stuff from the db and create it ""on the fly"" as needed. Or cache it in some (beaker?) memory cache. }}}" Elrond 176 Return behavior after adding media is non-intuitive minor ui defect accepted 2011-08-02T02:04:00Z 2020-05-13T03:36:51Z "{{{ #!rst After I add a new piece of media, the site takes me to my profile page, of all places. Even if I didn't start out on my profile page when I clicked the 'Submit media' button. How silly. Two solutions: 1.) After adding new media, always take the user back to their gallery page. Makes more sense than their profile page--what does that have to do with their pictures? 2.) After adding new media, take the user back to whatever page they started out on when they started the media-adding interaction. This is probably more complicated to code, but it does make adding media slightly more smooth for the user. }}}" Karen Rustad 180 Have a javascript-y autocomplete feature for tags you've used before minor ui enhancement accepted 2011-08-02T02:15:00Z 2014-08-21T12:11:52Z "{{{ #!rst If you've used a tag previously and you start typing the first couple (unique) characters of that tag, we should conveniently autocomplete it for you. }}}" Karen Rustad 207 Add tag list to user profile minor programming enhancement accepted 2011-08-20T16:38:00Z 2016-09-13T09:46:12Z " Currently the left part of the user's profile only contains... the profile. It'd be great if below that, we could have a list of tags they've used. - Maybe with a number behind it telling you how many times they've been used. - If there are a lot of tags, say, more than 20 or 30, the list should be cut off. - Of course each of these tags should link to the /u/tag/X page and list all of the media with that tag. - Maybe we can add a ""show all"" link that links to a full page for the user's tags. Maybe a tag cloud there? {{{ **schendje's profile**¶ ----------------------- I like swimming and eating pasta. Preferably at the same time. +----------------------------------+ | **Favorite tags** (show all) | +==================================+ | spain (8) sky (5) cows (4) | +----------------------------------+ | portrait (4) self-portrait (3) | +----------------------------------+ }}}" Jef van Schendel 212 Use werkzeug as a caching abstraction layer (was: «use beaker») major programming defect review 2011-08-22T11:54:00Z 2016-10-09T12:03:17Z "{{{ #!rst There are a few bugs circulating around that block on actually having an interface to a formal cache. This bug is to build this cache interface. Then we can use it to do stuff! }}}" Caleb Davis 220 RTL (right-to-left) language support. minor programming defect accepted 2011-08-28T12:46:00Z 2014-02-20T17:02:04Z "{{{ #!rst We need RTL (right-to-left) language support in MediaGoblin. Presumably this requires: - Pushing a variable into the general template context specifying whether the current language is LTR or RTL - Making an RTL stylesheet - ... other things? I'm assigning Osama Khalid to this ticket. Osama, you don't have to do this necessarily, but at least please give advice on what needs to be done (you can unassign yourself then if you like). }}}" Christopher Allan Webber 227 add multi-tag views minor programming enhancement accepted 2011-09-02T16:28:00Z 2016-09-13T09:48:20Z "{{{ #!rst In IRC schendje just reminded me about the multi-tag views that would be awesome to have: /tag/bunnies+fangs May we please have this now? BONUS: /u/superwoahdude/tag/bunnies - subscribe to a user's tags BONUS: /u/superwoahdude+awesomewoahman - subscribe to combo of users BONUS: /u/superwoahdude+awesomewoahman/tag/bunnies - subscribe to a tag from a combo of users BONUS: /u/superwoahdude+awesomewoahman/tag/bunnies+fangs - subscribe to the intersection of arbitrary lists of users and tags }}}" Caleb Davis 234 Add RDFa to HTML output minor programming enhancement accepted 2011-09-03T12:53:00Z 2016-10-06T10:58:29Z "{{{ #!rst RDFa provides a way to encode machine readable information in HTML. We should add support for basic information to our HTML output. - creator - title - publication date ... }}}" nyergler 244 GIF images work on media pages in most (of my personally experianced) cases, but not all. minor graphic design/interface defect accepted 2011-09-05T17:13:00Z 2012-06-22T20:58:42Z "{{{ #!rst When the user uploads an image we convert it to one or two additional JPEG sizes. 1. We will always create thumbnail.jpg. 2. If the image dimensions exceed one of 640x640px, we will create medium.jpg 3. If there exists a medium.jpg file for a media entry, we will show it on the media page, **else we will display the original file** This means that GIF images work if the fit within 640x640px Proposal¶ --------- 1. Create GIF thumbnails and medium.jpg if the original is a gif image Possible setbacks with this is that some thumbnails may present a large download despite it's small size. Possible solutions to possible setbacks¶ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It might be possible to resize a preset duration for the thumbnail animation and create the medium.jpg (if needed) with the full animation. }}}" joar 247 Add a language selector minor programming enhancement accepted 2011-09-07T12:24:00Z 2013-08-15T16:51:38Z "{{{ #!rst Please add a way to change UI language, overriding Accept-Language. E.g. a drop-down and/or an URL piece. }}}" Aleksej 260 A way for a reader to see thumbnails/resized versions in other sizes trivial programming enhancement accepted 2011-09-16T13:54:00Z 2012-08-13T17:32:26Z "{{{ #!rst The reader should be able to view galleries and image pages with the images resized to other sizes than a single default one: it is not possible for the browser to scale thumbnails up infinitely without losing their quality. Examples: - Flickr has at least ""small"" and ""medium"" gallery views, and several sizes for viewing and downloading of individual images. - MediaWiki allows registered users to choose from several thumbnail sizes for viewing of pages, and to generate a thumbnail of any size. }}}" Aleksej 263 A way to choose filename different from the before-upload one minor programming enhancement accepted 2011-09-16T15:22:00Z 2012-08-13T17:31:41Z "{{{ #!rst An uploaded file currently uses the name it had on the uploader's computer, with no other way to change that than changing the local name before uploading. That's a privacy issue, since the uploader may not expect for the local name to become public, and will not necessarily notice it soon. MediaWiki uses a good solution usable with what GMG does: after the local file is chosen but before it is uploaded, if JS is enabled, it shows the original file name, lets the uploader edit it, and uses the result (replacing spaces with underscores). }}}" Aleksej 267 counter to display access of media (showing the number of views) minor programming enhancement accepted 2011-09-19T13:38:00Z 2016-10-06T11:08:05Z "{{{ #!rst what I missed - as new user to mediagoblin: a counter how often the media was accessed (though that could be done with a external counter also) }}}" Erkan Yilmaz 268 display where media is used (on external locations) trivial programming enhancement accepted 2011-09-19T13:52:00Z 2015-02-19T04:51:17Z "{{{ #!rst reason: the more the media is used/(reused as mix) the higher the importance probably for me as creator as well as observer this would be a nice to have implementaion: - trackback (as with blog posts)? perhaps over an additional service where people can send a ping to when they use the media? - a bot which scans for media + indexes them somehow? }}}" Erkan Yilmaz 320 Video: Extract and save poster image minor programming enhancement accepted 2011-11-17T17:15:00Z 2013-04-23T20:41:55Z "{{{ #!rst In HTML5 video, there's a poster attribute on the tag, it contains the URL to an image that should be shown initially before the player has started. POSTER IMAGE DIMENSIONS Fetch from encoded video. It's available on the instantiated VideoThumbnailer in the dst\_data after encoding the video. EXTRACTING THE IMAGE We should perhaps use the VideoThumbnailer. IIRC it's possible to pass custom dimensions to it. }}}" joar 341 Simultaneous upload and metadata/description editing minor ui defect accepted 2011-12-04T14:01:00Z 2015-02-19T05:31:57Z "{{{ #!rst It would be great that the upload could start for a media file while I'm adding the title, description, and tags. }}}" Greg Grossmeier 344 Properly localize dates/times minor programming defect accepted 2011-12-05T08:48:00Z 2014-09-18T21:14:21Z "{{{ #!rst In the long run GMG should display dates/times in a proper local format. This might involve enhancing the current translations, so that the dates/times are positioned correctly. Useful link: - `http://babel.edgewall.org/wiki/Documentation/dates.html `_ }}}" Elrond 346 Keyboard shortcuts trivial programming enhancement accepted 2011-12-06T15:55:00Z 2018-04-19T14:04:06Z "{{{ #!rst It would be great to have the interface accessible via keyboard shortcuts. Examples - Links such as - Logged in user - Log out - Login - Forms - Picture navigation - Pagination I like the way FogBugz has done it, you click Ctrl+, and it shows the shortcut character for each of the links/subsections/inputs. You then click the shortcut character to activate the control. Of course, that does not fit for all things, such as media navigation. Input is welcome. (ahah, pun intended) }}}" joar 348 Ads support with Open X trivial other enhancement accepted 2011-12-07T14:09:00Z 2012-03-02T13:49:22Z "{{{ #!rst I think that at some time we will need to include ads support, and that for this it could be ideal the open-source advertising server OpenX. I've written more details in my wiki user page, since I think this will need a lot of literature: `http://wiki.mediagoblin.org/User:Manolinux#Openx\_support `_ Tell me your opinion here or by IRC. }}}" Manolinux aka Mu 350 "Document what ""Category"" options are" minor documentation task accepted 2011-12-08T13:58:00Z 2016-01-14T09:40:26Z "{{{ #!rst This is meta; I was wondering if we could get an explanation in the Redmine wiki as to what the categories refer to. I get **Documentation**, **Feature idea** and **Graphic design/UI**. I don't quite understand the difference between **Infrastructure** and **Programming**. Per `#699 `_, I would be happy to document that, if someone explained the last two to me. }}}" maiki interi 351 Markdown editor trivial programming enhancement accepted 2011-12-08T18:08:00Z 2013-03-25T06:45:07Z "{{{ #!rst Add a markdown editor for textareas which use markdown (to improve user experience). Solutions exist under *possibly* free licenses. Most are based off StackOverflow's reversed engineered WMD editor (which might or might not be under a free license). Original reverse engineering project: `https://github.com/cky/wmd/tree `_ (with 112 forks) So implementation is in three steps: - Check with lawyers about possible implications of using a reverse engineered WMD editor version - If OK, find a good fork which suits MediaGoblin's needs - Find all markdown input fields in code and add the editor (along with tweaking and making it pretty) }}}" Tryggvi Björgvinsson 364 Shotwell integration with mediagoblin API minor programming enhancement accepted 2011-12-20T15:13:00Z 2016-01-14T09:41:27Z "{{{ #!rst This is obviously somewhat preliminary, as we don't have an API quite yet as I'm writing this, but... We certainly want to integrate with all sorts of devices, but Shotwell would be a fantastic starting point as they're FaiF, come in near every gnome-oriented distro preinstalled, have similar goals, and have expressed interest in bundling a mediagoblin plugin. `http://redmine.yorba.org/projects/shotwell/wiki/ShotwellArchWritingPlugins `_ }}}" Christopher Allan Webber 382 If video support is turned off after videos have been uploaded, videos are still shown and cause an error when clicked minor programming defect Ben Sturmfels in_progress 2012-01-24T19:29:00Z 2017-02-09T22:09:11Z "Test case: Install mediagoblin with video turned on in {{{mediagoblin_local.ini}}}: {{{ media_types = mediagoblin.media\_types.image, mediagoblin.media_types.video }}} Upload a video Change {{{mediagoblin_local.ini}}} to have {{{ media_types = mediagoblin.media_types.image, }}} Restart paster / lazyserver / celery / etc. The video will be displayed, click it, you will get an error: {{{ Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: Error - : MediaManager not in enabled types. Check media_types in config? Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: URL: `http://ec2-107-20-7-95.compute-1.amazonaws.com/u/s22/m/some-video/ `_ Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/exceptions/errormiddleware.py', line 144 in *call* Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: app_iter = self.application(environ, sr_checker) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/local/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py', line 203 in *call* Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: return app(environ, start_response) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/local/lib/python2.7/site-packages/Beaker-1.6.2-py2.7.egg/beaker/middleware.py', line 155 in *call* Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: return self.wrap_app(environ, session_start_response) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/mediagoblin/app.py', line 176 in *call* Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: response = controller(request) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/mediagoblin/decorators.py', line 117 in wrapper Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: return controller(request, media=media, **args,**kwargs) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/mediagoblin/decorators.py', line 83 in wrapper Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: return controller(request, page=page, *args, **kwargs)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/mediagoblin/user_pages/views.py', line 125 in media_homeJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: media_template_name = get_media_manager(media.media_type)['display_template']Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File '/opt/mediagoblin/mediagoblin/media_types/**init**.py', line 65 in get_media_managerJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: ""MediaManager not in enabled types. Check media_types in config?"")Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: FileTypeNotSupported: MediaManager not in enabled types. Check media_types in config?Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi:Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi:Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: CGI VariablesJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: -------------Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: CSRF_TOKEN: u'2991456393146439023'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: DOCUMENT_ROOT: '/etc/nginx/html'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: DOCUMENT_URI: '/u/s22/m/some-video/'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: GATEWAY_INTERFACE: 'CGI/1.1'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,**/*;q=0.8' Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_ACCEPT_CHARSET: 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_ACCEPT_ENCODING: 'gzip,deflate,sdch'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_ACCEPT_LANGUAGE: 'en-US,en;q=0.8'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_CONNECTION: 'keep-alive'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_COOKIE: 'mediagoblin_csrftoken=2991456393146439023; mediagoblin_csrftoken=2991456393146439023; mediagoblin_csrftoken=2991456393146439023'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_HOST: 'ec2-107-20-7-95.compute-1.amazonaws.com'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_REFERER: 'http://ec2-107-20-7-95.compute-1.amazonaws.com/'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.75 Safari/535.7'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: PATH_INFO: '/u/s22/m/some-video/'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: REDIRECT_STATUS: '200'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: REMOTE_ADDR: '76.94.215.209'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: REMOTE_PORT: '41472'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: REQUEST_METHOD: 'GET'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: REQUEST_URI: '/u/s22/m/some-video/'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: SCRIPT_FILENAME: '/etc/nginx/html/u/s22/m/some-video/'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: SERVER_ADDR: '10.215.83.225'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: SERVER_PORT: '80'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: SERVER_PROTOCOL: 'HTTP/1.1'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: SERVER_SOFTWARE: 'nginx/1.0.5'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi:Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi:Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: WSGI VariablesJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: --------------Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: application: {(None, '/mgoblin_media'): , (None, '/mgoblin_static'): , (None, ''): }Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: beaker.get_session: >Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: beaker.session: {'_accessed_time': 1327450884.558526, '_creation_time': 1327450884.558526}Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: paste.throw_errors: TrueJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: webob._parsed_cookies: ({'mediagoblin_csrftoken': '2991456393146439023'}, 'mediagoblin_csrftoken=2991456393146439023; mediagoblin_csrftoken=2991456393146439023; mediagoblin_csrftoken=2991456393146439023')Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: webob._parsed_query_vars: (GET, '')Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: webob.adhoc_attrs: {'locale': 'en_US', 'staticdirect': , 'app': , 'db': Database(Connection('localhost', 27017), u'mediagoblin'), 'urlgen': , 'start_response': , 'session': {'_accessed_time': 1327450884.558526, '_creation_time': 1327450884.558526}, 'full_path': '/u/s22/m/some-video/', 'template_env': , 'matchdict': {'media': u'some-video', 'controller': u'mediagoblin.user_pages.views:media_home', 'user': u's22'}, 'user': None}Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: wsgi process: 'Multiprocess'Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: ------------------------------------------------------------Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: Starting server in PID 24618.Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: Traceback (most recent call last):Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/bin/paster"", line 9, in Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py"", line 104, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: invoke(command, command_name, options, args[1:])Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py"", line 143, in invokeJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: exit_code = runner.run(args)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/command.py"", line 238, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: result = self.command()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py"", line 311, in commandJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: serve()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteScript-1.7.5-py2.7.egg/paste/script/serve.py"", line 295, in serveJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: server(app)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.0-py2.7.egg/paste/deploy/loadwsgi.py"", line 189, in server_wrapperJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi:**context.local_conf)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/opt/mediagoblin/local/lib/python2.7/site-packages/PasteDeploy-1.5.0-py2.7.egg/paste/deploy/util.py"", line 56, in fix_callJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: val = callable(*args, **kw)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/paste_factory.py"", line 94, in run_fcgi_forkJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: s.run()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_fork.py"", line 133, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: ret = PreforkServer.run(self, sock)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/preforkserver.py"", line 123, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: if not self._spawnChild(sock): breakJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/preforkserver.py"", line 296, in _spawnChildJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._child(sock, parent)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/preforkserver.py"", line 374, in _childJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._jobClass(clientSock, addr,*self._jobArgs).run()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 646, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self.process_input()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 682, in process_inputJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._do_params(rec)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 781, in _do_paramsJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._start_request(req)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 765, in _start_requestJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: req.run()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 571, in runJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._flush()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 582, in _flushJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self.stderr.close()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 334, in closeJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self.flush()Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 328, in flushJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._write(data)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 299, in _writeJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._conn.writeRecord(rec)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 697, in writeRecordJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: rec.write(self._sock)Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 534, in writeJan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: self._sendall(sock, '00'*self.paddingLength) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: File ""/usr/lib/pymodules/python2.7/flup/server/fcgi_base.py"", line 507, in _sendall Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: sent = sock.send(data) Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: socket.error: [Errno 104] Connection reset by peer }}} This was as of this commit: {{{ commit c47a03b909ecd97cab5b144d0cab007b62b92a90 Author: Elrond <`elrond+mediagoblin.org@samba-tng.org `_> Date: Wed Jan 4 22:13:19 2012 +0100 Proper url_to_{prev,next} for SQL Uses complete sqlalchemy syntax now. }}} Grabbed via: {{{ git clone git://gitorious.org/mediagoblin/mediagoblin.git }}} " Clint Byrum 385 Show the original’s file size and dimensions on the file page minor other enhancement accepted 2012-01-28T13:30:00Z 2012-06-09T14:00:11Z "{{{ #!rst Currently there is no indication of the original's file size or dimensions. }}}" Aleksej 389 Remove Markdown explanations, after figuring out how to handle links minor graphic design/interface defect new 2012-02-09T20:55:28Z 2015-02-19T04:51:11Z "Currently some inputs such as the comment field, the profile bio and the media description have ""You can use Markdown for formatting."" next to them, where ""Markdown"" links to http://daringfireball.net/projects/markdown/basics . I'd prefer to have these removed, the reasons being: 1. Not all Markdown styles work, on purpose. Headers don't show, for instance, because this would mess up the page layout. 2. Markdown aims to be as natural as possibe. Type *this* and it will show it with emphasis. Lists are easy to create as well. Therefore, no explicit explanation is needed. 3. Having less stuff is good. The only problem to me seems to be links, because it is unclear how to create those. Either: 1. We explain how to create links. 2. We add a small button that inserts a link template in the field. Otherwise, it will be hard to figure out how to create links because inserting a URL will not result in one (maybe that is a bug in itself?)." Jef van Schendel 400 Media licensing should be human readable major programming enhancement accepted 2012-03-12T18:08:42Z 2020-05-14T13:12:11Z "When uploading media, the licensing options don't give enough information for most people to make an informed choice. The current list is: All rights reserved CC BY 3.0 CC BY-SA 3.0 CC BY-ND 3.0 CC BY-NC 3.0 CC BY-NC-SA 3.0 CC BY-NC-ND 3.0 CC0 1.0 Public Domain Propose better options, helptexts, or perhaps a block of text that changes based on your choice." Sacha 409 oEmbed support major programming 1.0 enhancement accepted 2012-03-19T11:23:40Z 2017-07-01T20:54:37Z "nowadays social networking platforms make heavy use of oEmbed for sharing media content in personal activity streams, open platforms like statusNet, diaspora or buddycloud use it as well as big brothers like facebook, tweeter etc. http://oembed.com/#section7 from xp in diaspora your service should have support for https, please see this issue: https://github.com/diaspora/diaspora/issues/2342#issuecomment-4525027" elf Pavlik 414 Ability to delete one's own comments. minor programming enhancement review 2012-03-23T21:34:29Z 2020-05-14T13:25:07Z "There is currently no way to remove one's own comments. Maybe the feature should be optional or customizable." Aleksej 417 JavaScripts and WTForms messages are not translated major programming defect accepted 2012-03-25T21:15:36Z 2023-01-12T09:29:34Z The strings in the !JavaScripts (e. g. `show_password.js`) and the !WTForms messages (e. g. “Invalid Input”) cannot be translated right now. Jakob Kramer 418 Leave slug empty until we are sure media processing was successful major programming defect accepted 2012-03-27T20:56:31Z 2018-04-19T13:56:23Z We should leave the ''slug'' field of a media entry empty until we are done processing and only set it if processing was successful. joar 458 Functional testing via selenium, phantomjs, or similar major programming task accepted 2012-06-02T17:06:44Z 2016-01-14T09:38:09Z "It would be good to have a way to run functional tests that mimic user behavior and tie them into our unit testing commands. We should probably use a tool like [http://phantomjs.org/ PhantomJS] or [http://seleniumhq.org/ Selenium]. And then of course we should have some tests. :) I'm marking the priority as low at the moment because I think it's not as critical at the moment given everything else going on." Christopher Allan Webber 465 Cannot delete attachments major programming defect accepted 2012-07-07T19:56:24Z 2015-01-20T17:08:59Z "Attachments cannot be deleted without deleting the whole ""medium.""" Jakob Kramer 467 write test scaffolding for core plugins major programming enhancement accepted 2012-07-13T13:02:47Z 2016-09-18T11:46:29Z "The core plugins need some additional test scaffolding to make it easier to write core plugin tests. Why? Well, so, the problem is that mediagoblin configuration is global and also which plugins are running is also global. There's a bunch of setup/cleanup that needs to get done. It should go in scaffolding to make it easier to deal with." Will Kahn-Greene 472 An option to use uploaded audio/video file “as is”, without transcoding minor programming enhancement new 2012-07-16T18:33:13Z 2014-10-16T22:06:45Z "Sometimes a video or audio file is uploaded in a format used by GMG for publishing files, but GMG transcodes the file anyway. That makes sense for security and possibly privacy, but sometimes it’s more of a waste of resources. Proposal: an option to let files be used without transcoding. * Use that way only video files up to certain dimensions (compared to the target dimensions), maybe also considering the file size (files with big video dimensions may still be OK if the file size is small). * Transcode only the data that is not in the target format. Thus an Ogg/Vorbis file becomes WebM/Vorbis without transcoding. * For security reasons, the option should probably be disabled server-side by default. Maybe (in the future) enable it for particular users or user groups. " Aleksej 486 Drag and drop media uploading support major programming enhancement accepted 2012-08-19T14:25:48Z 2016-01-14T09:39:59Z "We should add drag and drop media uploading support to MediaGoblin. Plenty of other applications (including OpenPhoto) have this; why not us? https://developer.mozilla.org/en-US/docs/DragDrop/Drag_and_Drop It might be worth discussing whether or not we want to do some other overhauls to make our upload page more dynamic as well, but just supporting dragging and dropping minimally might be a good first step. Not sure if this should be a plugin or not? I think probably not but would be interested in what others would think." Christopher Allan Webber 490 Media processing panel layout improvements minor graphic design/interface enhancement new 2012-08-23T15:27:10Z 2015-02-19T05:11:33Z "schendje and aaronw suggested some improvements to the panel's appearance: * The introductory text (""You can track..."") is probably unnecessary (at least as long as the content is self-descriptive) * Failed and successful uploads can be combined into a single list (""Recent uploads"") that distinguishes successful from failed uploads by color and/or other indicators * Column headings should be left-aligned like column contents to improve readability * The headings are not very visually distinct from the rest of the content -- indenting the tables a few em's to the right might help." Aaron Williamson 499 the avatar image is necessary minor programming enhancement accepted 2012-09-19T03:39:51Z 2014-10-19T18:28:39Z need an option to upload an avatar, I think something elemental. Charlie Vegan 508 You shouldn't have to upload a whole file to find out mediagoblin doesn't support it major programming defect accepted 2012-10-13T15:00:10Z 2016-09-18T02:07:37Z "I'm not really sure the best way to solve this, but we had a user who spent an hour attempting to upload a video only to get the message ""sorry, but I don't support that file"". I'm not sure what the best way to prevent this is... maybe we could pass up a list of file extensions we know we support? That's not really great either though considering the ""catch all"" or ""catch conditionally"" media type option we currently have. So, not really sure. But we should definitely deal with it." Christopher Allan Webber 516 """Hidden fields"" in oauth authorize client form not so hidden" minor graphic design/interface defect joar new 2012-10-16T06:41:14Z 2016-09-18T02:04:39Z joar 518 Package MediaGoblin for Debian critical programming enhancement Simon Fondrie-Teitler in_progress 2012-10-16T21:59:56Z 2021-04-09T07:22:29Z "Get MediaGoblin packaged for Debian and into the repos. Currently the packages it depends on that are not in the repo yet are kombu (needs version >=2.2) and translitcodec. I've emailed the maintainer for kombu, and he says he has 2.4.7 packaged but is waiting for python-anyjson >= 0.3.3 to hit the repos since kombu depends on it. As for translitcodec, Clint Byrum emailed debian-legal about the license. Their response was that the license was OK, but that it might not be a good idea to add it to the repos given the author called it an ""old, unfinished project"". ref: http://osdir.com/ml/debian-legal/2012-01/msg00115.html He also filed an ITP, which I emailed asking about taking over. ref: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657708 " Simon Fondrie-Teitler 519 A way to link to a position in a video/audio (timestamp) minor programming enhancement accepted 2012-10-17T13:59:04Z 2014-07-24T14:04:36Z Aleksej 522 Allow to create a filesystem-like album hierachy minor programming enhancement new 2012-10-19T13:03:12Z 2014-11-25T03:36:30Z "When storing photographs on their computer, some people, if not all, use a filesystem hierarchy, for with paths like pictures/photographs/2012/10/mountain_hiking. When publishing photographs on the Web, some people (well at lease me!) need to be able to define a similar hierarchy, that has to be available from the website home page to allow people to browse it easily. Here are several use cases. I took pictures from a mountain hike, with a bunch of people. Later, I took pictures from a free software meeting, with very different people. I want to be able to publish both series of photographs and give them the address, but my hiker friends have no interest in the other photographs, and neither do my developer friends. Also, some of them want to download the full-quality pictures (as a single archive file because HTTP offers no practical way for mass-downloading) of the single event that interests him. I participated in a pilgrimage, where several people took photographs. I want to be able to give them an access to a dedicated album, so that each photographer can upload his pictures to a dedicated sub-album. Some of my friends are interested in my photographs, but most of them are more interested in what I do, in the activities I participate in rather than in the individual pictures. As they go to my website from time to time. To be able to determine what event I shot, they must see an appropriate, chronologically-oriented hierarchy so they are not overwhelmed by bunches of hundreds of new photographs. I hope that was descriptive enough; if you want an example of such a hierarchy you can visit my website . The most complete application of that hierarchy is , where the path is composed of: a user name (me, because that website also hosts pictures from another member of my family), a date and event name, and under that one sub-album per photographer." Tanguy Ortolo 530 Airy: audio player’s time indicator is low-contrast minor graphic design/interface defect accepted 2012-11-05T10:52:49Z 2014-05-05T16:42:12Z See the bottom-right angle of the player at https://gobblin.se/u/selknam/m/impulse-by-silenwater-from-still-power/ Aleksej 534 Use accesskeys in the forms minor graphic design/interface enhancement new 2012-11-11T07:30:21Z 2015-02-19T05:05:31Z "See, e.g., the MediaWiki edit interface. Shift+alt+s will submit the form. Even most web forum software has this feature. There's some hacking-around-wtforms that needs to be done for this, but it's possible." Mark Holmquist 541 Use versioned API URLs trivial programming enhancement joar new 2012-11-16T11:33:09Z 2013-03-20T14:48:14Z "The API development is phantastic, but it is bound to evolve and change heavily over time. To make things easier (ie more stable) for client developers, we should provide a versioned API. ie use /api/1/entries/ /api/1/submit for now. This way we can deprecate existing API and replace it with newer one without constantly breaking clients. Perhaps a /api/version call could return a list of supported API versions. I think this should be done before MG becomes too widespread as breaking compatability is going to become harder then. Does this sound sensible? I could help working on that if needed." spaetz 545 User().unicode() should be friendlier for templates minor programming enhancement new 2012-11-21T11:05:05Z 2016-09-18T12:00:10Z "Trying to simply put User objects in templates (or convert them to unicode, I get . This is horrible to use in templates where you always need to specify .username or whatnot. It would be friendlier towards template writer to chose a default represenation that can easily be used in templates, so I can simply embed {{user}} and get an ok default representation of that user in the template." spaetz 546 Embed hcard in user profile (we claim to have one) minor programming defect new 2012-11-22T10:58:30Z 2012-11-22T10:58:30Z "Currently our webfinger user reply claims that the users's home page has a hcard microformat embedded. But there is none. So we either need to # Remove that claim or # Implement an hcard :-) The question to discuss is whether we should embed this in the user profile page, e.g. /u/spaetz/ or at some other place that is not that often called? Not sure, open for suggestions. Would like to get cwebbers input on this." spaetz 551 Create test that makes sure all migrations are sane major programming enhancement accepted 2012-11-26T22:35:54Z 2015-02-19T04:51:25Z "We should have a unit test that instantiates the tables at their first, pre-migration state (basically right after the move to SQL, commit ce29c140ed90fe0e19ed1b68ca8f7cf27aa03e8e) and runs all migrations, then creates a new database and instantiates the models at their current state, and sees if they match. If they don't, the test should fail. Note: we can't test for constraints in sqlalchemy, but we should otherwise be able to test to moderately general migration sanity. (Bonus points if it adds a user and a couple of media entries with appropriate media files, etc, but not required to close this bug.)" Christopher Allan Webber 563 Create License Table major programming enhancement new 2012-12-10T13:30:12Z 2016-10-07T03:43:25Z "Currently, we store a media's license through it's UNICODE URL, this means lots of duplication. A patch to set a user's preferred default license also stores the preference as Unicode. Would it make sense to have a table containing the available licenses (this would let us include more things like ""Human readable help text"" etc per license easily and a media's license would refer to it via a ForeignKey (and so would a user's default license choice). Less duplication and license customization would happen by fudging with the table (so could be done by web admin interface or plugin or whatever)." spaetz 567 Support For Ogg Vorbis+Theora major programming enhancement accepted 2012-12-14T05:37:06Z 2017-03-09T22:03:16Z "It appears that recordings added are converted to WebM (Vorbis + VP8 inside the modified Matroska container.) Can you please add support to instead encode into Ogg Vorbis + Theora? Every browser that has built-in support for WebM also has support for Ogg Vorbis + Theora but the reverse is not true, giving Ogg Vorbis + Theora greater browser compatibility. Add to this that the Java Cortado applet [0] can be used as a fallback method means that browsers as far back as Netscape 4 can play these files. [0] http://www.theora.org/cortado/" Jason Self 572 Move Columns from MediaEntry to ProcessingMetaData trivial programming enhancement new 2012-12-17T11:53:24Z 2015-06-22T21:37:56Z "There is a new table for data used while (or at the end of) processing. It's currently only used for the callback url. We should use it for more things. So I propose to move various columns from `MediaEntry` into `ProcessingMetaData`. Possible columns: * transcoding_progress * queued_task_id * queued_media_file (*) * fail_error (*) * fail_metadata (*) After a successful processing, none of these are needed. After a failed processing, those with (*) might be needed for various reasons. We should rethink that part maybe anyway." Elrond 574 Add slideshow view major programming enhancement reopened 2012-12-18T11:40:09Z 2012-12-18T11:54:29Z "At least for image-based media it would be nice to present slide show views for tag/user/collection-based series of media. We could make use of http://www.justinbarkhuff.com/lab/lightbox_slideshow/ or something similar and. I guess this is mostly a template job as the backend should kind of exist. Use case: I create a collection of my last holiday pictures or family event and want to share those with my friends and family for convenient viewing." spaetz 576 Evaluate Cloudfiles write() method. Borked for chunked writes? major programming defect new 2012-12-19T10:23:22Z 2013-03-23T01:57:25Z "TODO: XXX It seems that our {{{cloudfiles.write()}}} takes all existing data and appends {{{""write(data)""}}} data to it, sending the full monty over the wire everytime. This would of course absolutely kill chunked writes with some {{{O(1^n)}}} performance and bandwidth usage. But we do need chunked writes if we want to keep memory consumption at a reasonable level (#419). EVALUATE! Not familiar with cloudfiles but afaik we can iterate using some {{{send()}}} method." spaetz 579 Update/Restart processing queue on GMG startup minor programming enhancement new 2012-12-20T09:57:35Z 2012-12-20T09:57:35Z "I ran EAGER_CELERY and killed the server while transcoding media. The MediaEntries remain in ""processing"" state but the jobs will not restart/continue. Would it be possible to scan the database on GMG startup looking for entries in ""processing"" state and pass them to celery for processing? I noticed this now because I have a never-clearing queue of ""processing"" videos in my processing panel." spaetz 590 Provide Markdown formatting options rather than linking to Markdown website trivial graphic design/interface enhancement new 2013-01-09T03:32:06Z 2013-01-09T03:32:06Z "When a new user is setting up their profile, the website text tells them that they can use Markdown, and links them to the Markdown website. A better approach might be to do what Reddit does when allowing users to add basic text formatting to their comments. Reddit just has a link that says ""Formatting Help,"" which displays text formatting options when someone clicks on it. It displays things as, ""You Type"" and ""You See"", which I think makes sense for less technical users who might not know or care much about Markdown. Just showing the formatting options would help them do what they need to do without having to review the Markdown website." Jim Campbell 591 Default theme handles thumbnails for small pictures poorly minor graphic design/interface defect accepted 2013-01-10T12:42:03Z 2016-09-18T02:11:02Z "The default theme handles small images poorly. Screenshot: http://pix.toile-libre.org/upload/original/1357821395.png The title should always be on the bottom to make browsing many pictures in a row easier. The thumbnail should be vertically centered in the remaining space." "Sergey ""Shnatsel"" Davidoff" 593 Thumbnails of portrait images have inconsistent padding minor graphic design/interface defect accepted 2013-01-10T13:15:46Z 2016-09-18T02:12:52Z "Thumbnails of portrait images have padding on every side except on top, which makes them look off. Screenshot: http://pix.toile-libre.org/upload/original/1357823610.png Perhaps adding a separator between the title and the image will fix this, so that the thumbnail will no longer look like it has padding on the bottom." "Sergey ""Shnatsel"" Davidoff" 594 Provide consistent error handling in the API major programming enhancement joar new 2013-01-13T22:11:52Z 2016-01-13T17:37:21Z joar 595 Hook to allow plugins to alter the template for media pages major programming task new 2013-01-14T21:22:08Z 2013-01-14T21:26:26Z "For the view count plugin, I need to display the counter under the media box. For this, my plugin needs a hook to be able to alter the template for media pages. Reference: http://lists.mediagoblin.org/pipermail/devel/2013-January/000376.html" Tiberiu C. Turbureanu 596 Hook to allow plugins to do some work on page load major programming task new 2013-01-14T21:25:40Z 2013-01-14T21:26:58Z "For the view count plugin, I need to bump the counter whenever the media page is loaded (GET). For this, my plugin needs a hook to allow evaluation on page load. Reference: http://lists.mediagoblin.org/pipermail/devel/2013-January/000376.html" Tiberiu C. Turbureanu 597 Hook to allow plugins to alter the template for media edit form major programming task new 2013-01-14T21:30:14Z 2013-01-14T21:30:14Z "For the advertise plugin, I need to add a check box to the media edit form to allow the user to opt for advertising the media on the front page. For this, my plugin needs a hook to be able to alter the template for media edit form. Reference: http://lists.mediagoblin.org/pipermail/devel/2013-January/000391.html" Tiberiu C. Turbureanu 598 Support for UTF-8 paths major programming task accepted 2013-01-15T15:26:41Z 2015-02-19T03:37:26Z "On a fresh GMG install I get the following error for a UTF-8 path: {{{ [tct@turbureanu mediagoblin-ceata]$ pwd /home/tct/Descărcări/mediagoblin-ceata [tct@turbureanu mediagoblin-ceata]$ ./bin/gmg dbupdate Traceback (most recent call last): File ""./bin/gmg"", line 8, in load_entry_point('mediagoblin==0.3.3.dev', 'console_scripts', 'gmg')() File ""/home/tct/Descărcări/mediagoblin-ceata/mediagoblin/gmg_commands/__init__.py"", line 100, in main_cli args.func(args) File ""/home/tct/Descărcări/mediagoblin-ceata/mediagoblin/gmg_commands/dbupdate.py"", line 129, in dbupdate global_config, app_config = setup_global_and_app_config(args.conf_file) File ""/home/tct/Descărcări/mediagoblin-ceata/mediagoblin/init/__init__.py"", line 47, in setup_global_and_app_config global_config, validation_result = read_mediagoblin_config(config_path) File ""/home/tct/Descărcări/mediagoblin-ceata/mediagoblin/init/config.py"", line 80, in read_mediagoblin_config validation_result = config.validate(validator, preserve_errors=True) File ""build/bdist.linux-x86_64/egg/configobj.py"", line 2295, in validate File ""build/bdist.linux-x86_64/egg/configobj.py"", line 2250, in validate File ""build/bdist.linux-x86_64/egg/configobj.py"", line 570, in __getitem__ File ""build/bdist.linux-x86_64/egg/configobj.py"", line 562, in _interpolate File ""build/bdist.linux-x86_64/egg/configobj.py"", line 365, in interpolate File ""build/bdist.linux-x86_64/egg/configobj.py"", line 352, in recursive_interpolate UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 14: ordinal not in range(128) }}}" Tiberiu C. Turbureanu 600 """Liberate my data"" (data export button)" trivial programming enhancement spaetz new 2013-01-21T16:32:53Z 2014-09-02T10:00:54Z "As a nice service we need to help users to migrate their data. I plan to introduce a ""liberate my data"" button which exports a users media metadata, URLS, tags, comments etc.... into a json file. This service should also include the URL to the original media file (rather than the media file itself), so that an import slurper can upload the media directly from the old instance. We should probably also provide a sample script which would download the media files of a user to their hard drive again. What do people think of this?" spaetz 603 Subscribing to users across instances major programming 1.0 enhancement new 2013-01-25T08:43:21Z 2017-07-01T20:51:03Z "Between remote instances of mediagoblin, enable subscription from user A to user B. source : http://mediagoblin.org/news/fsws-2012-wrap-up.html" Arthur Lutz 607 Implement WebActivities and WebIntents major programming 1.0 enhancement new 2013-01-25T08:51:28Z 2017-07-01T20:52:07Z " https://wiki.mozilla.org/WebAPI/WebActivities http://webintents.org/ These future ""standards"" could solve the problem to remote interaction between mediagoblin instances for example ""When I do X task (such as favoriting, subscribing, or adding to a collection), I want to use Y service"" source : http://mediagoblin.org/news/fsws-2012-wrap-up.html" Arthur Lutz 612 MediaFile deletion bails on with missing files on cloudfiles major programming defect new 2013-01-27T19:49:23Z 2016-01-13T19:18:57Z "MediaEntry.delete does this: {{{ try: delete_media_files(self) except OSError, error: }}} joar says that the cloudfiles plugin raises a different exception when files are missing (somthing that is an IOError subclass). So the very least we need to do here, is to also catch IOError and make them non-fatal. Even better, if we could make the file deletion be celery tasks. In this case we would get automatic retries in case of failures (with separate-process celery) even after some waiting time." spaetz 613 Improving Media collection major programming enhancement accepted 2013-01-31T16:52:12Z 2015-02-19T05:11:18Z "Summary of changes : Basically, to idea is to replace the tedious process to add medias to collection. It's done, by putting the form where media are. - When you submit a media - When you are on a media's page. The ""add to collection"" page no longer exists (yet I haven't removed anything that whould allow it to work... up to you). TEMPLATES - The media_collect.html has been splitted to be used as a stand alone or as par of another form (start.html). The media's information has been removed, it's now contextual. - The ""embeddable form"" is in utils/collection_form.html - submit/start.html embeds the form above VIEWS The ""add to collection"" method has been put in tools/collection.py so it can be called from the ""submit a media form"" and from within the media page. - in user_pages/views.py - media_home : adding the collection form - media_collect : it calls the collection_tools method instead - in submit/views.py : calls the collection_tools method, passing the new media's data I've slightly changed the behavior when you type an existing collection : it add the media to the existing collection instead of showing an error. It was mainly because I couldn't find a way to reload the media entry page without losing the filled form. Moreover, it's a smoother way to handle the error. Here are the changes https://github.com/MusiqueLibre/DogmaGoblin/tree/collection_improvement" Tumulte 619 """-- Select --"" at the ""Add media to collection"" page cannot be translated/localized" minor programming defect new 2013-02-04T10:09:51Z 2015-02-19T05:03:03Z "The ""-- Select --"" is the default value of the drop-down list of collections." Aleksej 620 Error message improvments minor programming enhancement new 2013-02-04T13:42:25Z 2013-02-04T13:44:55Z "Hi, I've noticed few stuff in the error messages that can be easily changes for a better usability. ""'''Sorry, I don't support that file type :('''"" I'll take this example only, but the tips apply to other : - Avoid the anthropomorphism (""I don't""). It weakens the feeling of control (i.e. : I can solve this error, cause it's only a machine). - The error message is not the place to be verbose, the user want to understand what's wrong right away. e.g. : The ""''sorry''"" and the ""'':(''"" are unnecessary - It lacks of information : what did I send, what's supported ? - It comes to late (you have to fill the form all aver again... and ajax check would be in order) Therefore the message should come right after selecting the file and should look kike this : ""oga"" support is not enabled (and bellow, i.e., not in red : ) filetypes enabled : jpg, png, gif, mp3, wmv " Tumulte 627 URL redirect after login breaks with URL encoded characters major programming defect new 2013-02-08T21:14:21Z 2013-09-29T15:43:04Z "* I visited a page at ""/u/schendje/m/livingcolors-%2B-wires/"" * I logged in * I was redirected to an error page at ""/u/schendje/m/livingcolors-%252B-wires/"" As you can see, it URL encoded the already URL encoded character, breaking the URL. (I hope I used the right terms.)" Jef van Schendel 634 Implement SVG support major programming enhancement pythonsnake in_progress 2013-02-12T17:23:40Z 2013-09-24T12:21:55Z I would like to request support for support for SVG (images) mrb 635 "REQUEST: Add a ""like"" (and maybe dislike) function" minor graphic design/interface enhancement accepted 2013-02-14T02:58:10Z 2016-01-14T09:41:04Z "Like the summary says. It would be neat (and super simple) to have a ""like"" button (or maybe love/heart/4 or 5 star rating) for all kinds of media. Or, someone could use this ticket to educate me why this isn't such a good idea, despite so many the big media sharing sites having this feature." Andrew Ter-Grigoryan 638 meta-decorator hooks / emacs-lisp style advice minor programming enhancement accepted 2013-02-14T20:52:57Z 2013-07-11T18:25:09Z "This is an incredibly evil and flexible idea that, like decorators itself, is probably elegant, hard to understand, powerful, and yes, a little bit evil. So this is an idea inspired from emacs lisp, which allows you to pass in functions to wrap a function that already exists (this is called ""advising functions""). Actually, hooks in emacs look a heck of a lot like decorators, so actually... Say you have this function: {{{ @meta_decorator_hook('some_function_hook') def some_function(foo): bla bla }}} Now, you want to wrap this function! But how do you wrap it? It's already defined, you can't just wrap arbitrary things around it! ... or can you? In this meta_decorator_hook, the meta_decorator_hook returns a lazy-loaded method set to actually construct a chain of wrapped methods. So if we did something like: {{{ pluginapi.wrap_function('some_function_hook', our_function) }}} .. it would return, basically a WrappedFunction() that, the first time it is executed, walks through all the decorator like methods that have been pushed onto that hook and wraps them in each other. That meta-decorated method is cached, and eventually, executed. Sounds evil, right? :) This could be super powerful though. You could do crazy things like double-check the results of a view before returning it, or totally override the view and decide not to call it at all for your plugin, call it both before and after, or set up special-case exception handling for hooks that are called within the function itself. I'm sure I didn't make that sound any less evil, but I think it'd be really great." Christopher Allan Webber 642 Add real_world_date / date_taken field major programming enhancement new 2013-02-18T21:15:47Z 2013-05-18T14:55:39Z "It would be very useful to be able to sort photographs on the date they were taken (which may be different from the date the image file was created). This will allow users to for example ask for all photographs taken on July 1976. When users scan pictures or otherwise digitize older media the file creation date will not match the date of the event pictured in the media. This field is about the date of whatever is pictured in the media, and so should be called something like real_world_date, EXIF calls it date_taken. For files with an EXIF date_taken field, the equivalent mediagoblin database field should get auto-filled when an image is added. Not all media have such a field, so it should be user editable. The EXIF date_taken could also be wrong, so user editable also means the user should be able to clear/delete the date if it was auto-filled. I discussed this with Elrond (and odinho) on #mediagoblin, 2013-02-18 19:45 UTC." warp 650 .media_data is sometimes None (and has no rows)! Is this the right thing to do? major documentation defect new 2013-03-03T00:06:56Z 2013-08-15T15:57:12Z "Elrond and I had a conversation on IRC. Basically, I was surprised to learn that some entries do not have {{{.media_data}}} records and wrote some code that exploded on me, and that this was by design (it may be that I was involved in this design, but anyway, if so I forgot :)) The way things currently work is that media_data is optionally initialized when properties are set, like so: {{{ if len(exif_all): entry.media_data_init(exif_all=exif_all) if len(gps_data): for key in list(gps_data.keys()): gps_data['gps_' + key] = gps_data.pop(key) entry.media_data_init(**gps_data) }}} In the above example (which is image processing code) media data is initialized if there's exif data or if there's GPS data. However, if there's neither, the {{{.media_data}}} row will never be written and trying to access {{{.media_data}}} will return None. The question is: is this a good idea? The short version is that it's a battle between two different forms of minimalism: only filling the database with rows when there's something to store results in a leaner database but messier code, always having a row results in simpler code but some rows when no rows need to exist. (Thus a battle between Elrond's razor (database simplicity) and cwebber's razor (code simplicity)!) A longer version of these points are: 1. This results in code that is harder to read: {{{ if media.media_data is not None: # do something with media data }}} ... which is fairly confusing. 2. As for writing, one could argue that it's not much trickier to do {{{media.media_data.p = q}}} or instead {{{media.media_data_init(p=q)}}}. (Counterpoint: maybe there are some media data forms that require setting multiple fields at once in a somewhat interdependent or tricky way?) However, initializing fields is not the only thing; one also works with things above such as the {{{if media.media_data is not None}}} which can be very tricky to get right. Also, if Chris Webber was confused and wrote totally broken code because of this {{{.media_data}}} being None thing, probably so will others! 3. Migrations could get a lot messier. Basically, one might write a migration that assumes a query on an images' media data, and one might forget that those rows might not always be there. This could result in broken migrations. On the other hand, migrations are already one of the trickest things in mediagoblin anyway. ;) 4. The big thing though is that it's less db space to do things this way. Elrond says it's a bigger concern on MySQL/MariaDB (well, we don't support that yet anyway ;)) than it is on postgres or sqlite. 5. It wouldn't be less queries though, since we still need to check whether there's a row or not. (However, Elrond points out that the payload is somewhat less if we don't return anything!) What's the right thing to do? " Christopher Allan Webber 653 Add capability for embed codes to show media on other websites minor programming enhancement accepted 2013-03-08T00:09:39Z 2016-09-27T01:30:04Z "I'm looking for the ability to provide my mediagoblin users the ability to copy and paste a snippet of code - a la youtube or vimeo - to display media in another website. Without having researched it, I'd imagine what would probably be done for video is some sort of iframe? Or alternatively, a javascript snippet with parameters that add the video.js player to the existing page and then includes the video element in its place. I could look at how other video players handle this too. For images, it's pretty trivial once the infrastructure for configuring and displaying the embed code is in place." Nick 659 mark_entry_failed should possibly rollback session major programming enhancement new 2013-03-11T21:16:55Z 2014-09-18T21:38:25Z "{{{mark_entry_failed}}} is often called after an exception. This exception might be an sql exception (it shouldn't, but well, it happens). After an sql exception the session is in a broken state and mark_entry_failed can't do its job and mark the entry failed: If a session is broken, one can't use it for anything, until one cleans it up using {{{.rollback()}}}. So the suggestion is to call {{{Session.rollback()}}} in {{{mark_entry_failed}}}. Rationale: 1. If the session is clean: fine. 2. If the session is broken: better clean it up instead of having a exception on an exception (harder to read). 3. If someone missed to {{{.save()}}} something, oh well, their fault. " Elrond 673 Anonymous Commenting minor programming enhancement accepted 2013-03-27T21:13:51Z 2016-01-14T09:38:18Z "Directly related to #525 I came across the idea of allowing users to accept anonymous comments on their pages which also led me to the idea of allowing users to moderate what comments can be shown on their page (by letting them approve comments before they are shown). This required some DB/frontend/backend changes. My first commit so far has included the ability to comment anonymously. My next goal is the comment moderation ability per-user and then looking at how the system works as a whole and sprucing up as needed. You can follow my progress here: https://gitorious.org/~lotusecho/mediagoblin/lotusechos-mediagoblin/commits/Anonymous_Commenting " Emily O'Leary 684 Allowing plugins to add commands to 'gmg' major programming enhancement review 2013-04-23T09:32:26Z 2020-05-11T04:38:23Z "My gmg_localfiles has a import_files.py file for importing. ( https://github.com/Velmont/gmg_localfiles ) It'd be nice to rather get a new gmg command when you have installed the plugin." Odin Hørthe Omdal (Velmont) 692 Proper documentation on how to author tests major documentation defect accepted 2013-05-04T20:39:08Z 2014-07-23T15:59:26Z "We need better documentation on how to author unit tests. This should go in {{{docs/source/devel/}}} on its own page, maybe ""writing tests"" or some such. The following should be mentioned: * How to run tests (even though this is covered elsewhere) * What tools we use (pytest, webtest) * A simple ""writing a unit test"" example * Show to pass an application fixture into a test * Show how to set it up with different configs (I can explain this on IRC) " Christopher Allan Webber 696 Version checking against MediaGoblin for plugins minor programming enhancement accepted 2013-05-08T14:24:37Z 2016-01-12T22:51:20Z It would be nice if plugins could verify that they're compatible with the running version of MediaGoblin before they're turned on. Christopher Allan Webber 701 Automatically play audio / video in collections successively minor graphic design/interface enhancement new 2013-05-09T21:26:29Z 2013-05-09T21:26:29Z "Similar to how !YouTube handles it with its playlists: There is a button ""autoplay"" that let's you play one video or audio track after another automatically. Also there should be buttons for ""next media in collection"", etc." Jakob Kramer 712 Base template should not enforce header's max-width minor graphic design/interface enhancement new 2013-05-26T11:03:53Z 2013-05-26T11:03:53Z "Right now mediagoblin's base theme (aka default theme)) enforces header's maximum width, but this should not happen in my opinion, because can make some troubles to theme designers. http://gitorious.org/mediagoblin/mediagoblin/blobs/master/mediagoblin/static/css/base.css#line116 In my opinion, base.css must be included for _really_ base design (e.g. theme skeleton), and all max-* items must be defined in themes (and colors too). So there is a possible solution: make a default theme, that can be specified in ""theme"" option in mediagoblin{_local}.ini and clean up base.css." Stanislav N. aka pztrn 713 "Should password recovery e-mail use the website name instead of ""GNU MediaGoblin""?" minor programming enhancement new 2013-05-30T23:57:17Z 2016-04-21T16:07:58Z "I've requested password change for gobblin.se, and got an e-mail like: {{{ Subject: GNU MediaGoblin - Change forgotten password! Hi, avrs, to change your password for GNU MediaGoblin, open the following URL with your Web browser: … }}}" Aleksej 714 """Change forgotten password"" e-mail subject is not localizable" trivial graphic design/interface defect accepted 2013-05-31T01:08:01Z 2016-01-14T11:13:54Z "Subject: ""GNU MediaGoblin - Change forgotten password!"" is not translatable." Aleksej 715 Move CloudFiles storage backend over to pyrax major programming 0.11.0 enhancement ayleph in_progress 2013-06-01T22:52:52Z 2020-04-23T12:28:48Z python-cloudfiles is no longer being maintained, we should move to pyrax instead: https://github.com/rackspace/pyrax joar 719 support for timeside - an audio component major programming enhancement new 2013-06-18T08:25:37Z 2013-06-18T08:25:37Z "timeSide is an ""Open and fast web audio components (Python, HTML, CSS and JavaScript)"" aside from acting as a player it allows for ""deep linking"" and commenting on audio streams. good fit for communal archiving github: https://github.com/yomguy/TimeSide demo: http://parisson.telemeta.org/archives/items/PRS_07_01_03/ i'm an archivist by heart, got here via alon l." yair99 720 """file correctly uploaded"" bar is misleading" minor graphic design/interface defect accepted 2013-06-20T14:34:42Z 2016-01-14T09:40:16Z "With my new fresh installation of MG I added a sample picture. Then the system said on the green bar ""file correctly uploaded"" but in the same page there was also written ""you haven't already added files"" Screenshot attached. I'm currently testing the dave thompson 421-mysql branch which is up to date with master." Danilo Tomasoni 728 Collection page shows thumbnails in reverse order major programming 0.13.0 defect Boris Bobrov in_progress 2013-06-24T08:01:47Z 2021-10-02T01:09:04Z "The collection page at /u//collection/ shows thumbnails in order they were added. But the pagination link to go to the next page says ""Older ->"" implying that the thumbnails are being shown in reverse-created order. " Kushal Kumaran 733 When viewing a Collection item, only cycle through the media in the Collection major programming enhancement review 2013-07-10T17:06:52Z 2013-09-29T20:11:31Z "Currently if you click on a media entry from within a collection, it takes you to the media's page {{{/u/rodney757/m/photo/}}}. From there when you click {{{older}}} or {{{newer}}}, it cycles through all of the user's media. I think that it should only cycle through the media in the collection. cwebb says: maybe like when viewing a page like: /u/cwebber/m/new-comic/?in=collection:comics which would mean you're browsing in the ""comics"" collection not sure though could also do session hacks to preserve state I think flickr does something similar. " rodney757 734 Document the config options available in config_spec.ini major documentation enhancement accepted 2013-07-12T19:08:42Z 2017-02-09T21:50:28Z It would be nice if we had all of the config options documented in one place. rodney757 742 Licenses display are illogical major programming enhancement new 2013-07-31T12:50:16Z 2013-08-08T21:57:13Z "Atm, licenses use the uri as the key to retrieve the license, and the abbreviation as the name (the complete name is, afaik, isn't used anywhere) This is not only illogical, but the licenses' text url is the thing that is most likely to change overtime (maybe not for CC's but for small licenses it can happend). I think it's a better idea to use the full name of the license in the drop down menu, keep in mind most people don't understand much about this. CC-BY-SA is too elitist. ""Creative Commons"" will be more likely to ring a bell. Here's few changes I suggest : in submit/forms.py#69 [-]return [(lic.uri, lic.abbreviation) for lic in SORTED_LICENSES] [+] return [(lic.abbreviation, lic.name) for lic in SORTED_LICENSES You'll notice this poses some visual issues : why not radio, then ? Drop down lists are usually a bad option when there's too many entry anyway. ---- In template : [-] {{ media.get_license_data().abbreviation }} [+] [+] [+] {{ media.get_license_data().abbreviation }} [+] [+] Also solving some accessibility/semantic issues... " Tumulte 743 Avoid crash when loading STL media without Blender in the server minor programming defect Rodrigo Rodrigues da Silva in_progress 2013-07-31T21:36:55Z 2014-06-05T14:27:20Z "So I am moving this here from a merge request, as we are trying to close those out. I only briefly looked at this, but from what I see is that it is missing a migration, and the WebGL view is not automatically loaded upon visiting the media page. Here is a link to the original merge request: https://gitorious.org/mediagoblin/mediagoblin/merge_requests/57 And to the repo: https://gitorious.org/~juca/mediagoblin/mediagoblin-fsanches/commits/conditional_blender_thumbnails" rodney757 745 Plugin Migration Tests major programming enhancement new 2013-08-02T14:36:20Z 2016-01-13T18:12:00Z So currently we have tests for migrations and the new foundations stuff, but we don't have any tests that use plugins. It would be great if someone wanted to write some tests for migrations and foundations from a plugin. rodney757 749 With JS, videos can be (un)paused only with mouse; without JS, only with keyboard minor programming defect new 2013-08-10T09:15:01Z 2014-12-18T16:20:43Z Aleksej 752 Refactoring notifications to more cleanly hook into application minor programming defect new 2013-08-14T21:01:08Z 2013-08-14T21:01:08Z "Right now, notifications' tooling are kind of ""special case""'ed into the application. See especially: {{{ template_env.globals = hook_transform( 'template_global_context', template_env.globals) #### THIS IS TEMPORARY, PLEASE FIX IT ## Notifications stuff is not yet a plugin (and we're not sure it will be), ## but it needs to add stuff to the context. This is THE WRONG WAY TO DO IT from mediagoblin import notifications template_env.globals['get_notifications'] = notifications.get_notifications template_env.globals[ 'get_notification_count'] = notifications.get_notification_count template_env.globals[ 'get_comment_subscription'] = notifications.get_comment_subscription if exists(locale): SETUP_JINJA_ENVS[locale] = template_env return template_env }}} This isn't nice... as far as I can tell, there's no reson for notifications to not be a plugin though? That would fix the issue of hardcoding these utilities into the template context. Alternately maybe if there are some plugins that are so core they should always be on and might as well be core, but it's cleaner to use the template machinery, maybe we could provide a way to have a ""always loaded"" set of ""plugins""... even though they're soldered into the outlet ;)" Christopher Allan Webber 756 Video pane dimensions in VJS skins are too small minor programming defect new 2013-08-28T09:08:42Z 2013-08-28T09:08:42Z "The video pane dimensions in static/css/vjs-mg-skin.css are set to 650x366, which results in the default 640x480 video size being scaled down to 488x366. It seems to me that these dimensions should be set to 640x480. " saul 772 browser warning when you try to close mb when active editing major programming defect new 2013-09-16T23:49:46Z 2013-09-16T23:49:46Z mb needs a warning when you try to close it with upload in background. its possible, and happens :( yair99 775 confirm on exit when uploading major programming enhancement new 2013-09-24T18:17:53Z 2016-01-12T23:02:42Z " http://www.openjs.com/scripts/events/exit_confirmation.php" yair99 777 Not possible to edit collection item notes minor graphic design/interface defect accepted 2013-09-25T13:59:31Z 2013-11-22T14:51:02Z "When adding media to a collection one can add a note. Currently there is no way to edit that note. Clicking ""add to collection"" on the media and selecting the same collection, one gets a ""this media is already in the collection"" error message. Instead one should get redirected to a form field, that lets one edit the relationship." spaetz 779 Feature Request: SwarmPlayer embed minor programming enhancement new 2013-09-26T23:36:11Z 2016-10-08T10:35:24Z "I have found Swarmplayer to be quite an interesting concept and may be quite useful as a feature in MediaGolbin as well. This would allow everyone to share ""bits"" of the file via torrent and have it play right on the page. For more information see their website: http://swarmplayer.p2p-next.org/dev.html Their code is LGPL. It would be of huge benefit for small servers without much bandwith and should provide faster playback. It actually wouldn't take too much work to implement into this project since most of the grunt work is done by P2P-Next. If we wanted to implement I would imagine it would work as follows: 1) User uploads video 1b) User is given option to enable support for SwarmPlayer, on by default? 2) MediaGoblin automagically creates tribe:// link for video and works out of the box in the media gallery. Tribe link itself can be self-hosted or via URL2Torrent website (their code is AGPL) 3) Optional support for importing of existing tribe:// videos into MediaGoblin. Just a thought. Thanks and keep up the good work!" G4JC 782 Spectogram should be created client side major programming enhancement accepted 2013-09-29T17:10:56Z 2015-02-19T05:10:57Z Mediagoblin should get the the data use in the spectrogram from the file, but the actual rendering should be passed to the browser and done client side. Simon Fondrie-Teitler 794 Meddleware for private instances major programming enhancement new 2013-10-11T17:09:27Z 2013-10-11T17:09:27Z "Hi, In spite of the coming pump.io integration and a more fine-grained permission system, I wrote a simple meddleware which prohibits access for all non-authenticated users a few weeks ago. I do not know the policy, but as meddlewares are optional I thought maybe you want to add it to the main repo, or should i add it to http://wiki.mediagoblin.org/Available_Plugins ? Source is at https://github.com/phaer/mediagoblin/tree/phaer/private-meddleware" phaer 798 Change route priority : plugins should override core major programming enhancement new 2013-10-19T15:30:41Z 2013-10-19T15:30:41Z "Hey ! It's impossible so far to override an existing route in a plugin. Let's say you want to add some stuffs in the homepage... that's not possible. Can you either allow plugins' routes to override core or add an option to do so ? It it goes against any good practice, please note it's only a problem with the homepage. you can easily create new routes and change links in templates accordingly. " Tumulte 799 Support chapters or jump labels for videos/audios major programming enhancement new 2013-10-19T17:18:06Z 2013-10-19T17:18:06Z Hi, it would be great, if the author would have the possibilities to define jump labels at the timeline. This feature can be useful if you want to '''share tutorials, publish CDs''' with different songs in a single upload etc. user-A 800 Comments to a certain timestamp/time period major programming enhancement new 2013-10-19T17:30:12Z 2013-10-19T17:30:12Z It would be great, if the users had a possibility to place comments for a certain point or period of time. This would allow them to give feedback on certain aspects during the audio/video recordings, like refer to some aspects of a talkshow/interview/tutorial/podcast/... user-A 801 Links in Videos/photos major programming enhancement new 2013-10-19T17:38:34Z 2013-11-01T23:55:54Z I would like to have a feature, that allows you to add some clickable links like youtube offers. This would allow you to set some backlinks to other videos/fotos or external webpages. Maybe we can allow the community to vote on blocking the links, so we can avoid annoying links like at some yt video channels. user-A 804 Improve user interaction/contribution/ -> crowdsourcing major programming enhancement new 2013-10-19T18:19:07Z 2016-01-12T22:17:31Z "Hi, I like to submit the idea, that it might be wise, if gobblin gets more toward enable endusers to contribute to shared media. This can be for example: * #800 split/mark periods in the mediastream and assist on identifying chapters * #750 allow to contribute own translations of subtitles * ... I know that this will get complex and that there are some concerns, if a platform is that open (vandalism esp. spamming, ...). But IMHO if we allow the admin to manually change this settings, it would be a good feature, thats supports the creation of a community around a gobblin server :)" user-A 811 Move away from Paste* major infrastructure 0.12.0 enhancement new 2013-11-12T18:44:00Z 2021-04-09T06:59:03Z "I don't like the PasteScript and PasteDeploy libraries that we use since they seem to lack a visible community and there are other replacements out there with wide adoption and living communities. I talked a bit with Chris on IRC about this, this issue could be seen as a RFC on this my proposal." joar 816 BCV (Buscador de Contenidos en video) / BCV (content search in video) trivial programming enhancement new 2013-11-21T17:23:51Z 2015-02-19T04:47:12Z "youtube no quiere ser el primero. Por eso mi idea si es posible. BCV (Buscador de Contenidos en video) / BCV (content search in video) es:. Tecnología BCV (Buscador de Contenidos en video) solo es una simple Base de Datos que indexara cosas que uno ve en los videos. Quien indexara esas cosas sera el propio autor del video. Con esta mejora se hallaran mejores búsquedas en:. BCV (content search in video) technology is only a simple database that host things that one sees in the videos. Who the author of the video host will be stuff. With this improvement, better searches is found" Fabián Bonetti 817 4 different similar strings about Markdown trivial graphic design/interface defect new 2013-12-03T20:03:56Z 2015-02-19T04:52:21Z "Unless #389 gets fixed. ======================== #: mediagoblin/edit/forms.py:91 mediagoblin/submit/forms.py:65 msgid """" ""You can use\n"" "" \n"" "" Markdown for formatting."" msgstr """" -- #: mediagoblin/submit/forms.py:41 msgid """" ""You can use\n"" "" \n"" "" Markdown for formatting."" msgstr """" -- #: mediagoblin/user_pages/forms.py:25 msgid """" ""You can use Markdown for formatting."" msgstr """" -- #: mediagoblin/user_pages/forms.py:49 msgid """" ""You can use\n"" "" \n"" "" Markdown for formatting."" msgstr """" ======================== " Aleksej 823 Ugly previews of scaled indexed images minor programming defect accepted 2013-12-27T13:33:40Z 2016-10-05T06:19:26Z "Previews of images using an indexed color mapping can become very ugly if the original image needs to be scaled down. For example: [[Image(http://barn.kerosenecow.net/mgoblin_media/media_entries/435/indexed-degradation.png)]] This degradation is inherent to scaling indexed images and though the result may vary depending on the scaling algorithm used (NEAREST, BILINEAR, BICUBIC, or ANTIALIAS), scaling will always result in degradation. Of the file types that Mediagoblin supports, PNG and TIFF files may or may not use indexed color mapping, while GIF files always use indexed colors. One way to improve the quality of such scaled previews is to convert the image to the RGB color space before scaling. " saul 826 Mediatype of image should provide a Download link. minor graphic design/interface defect new 2013-12-28T17:01:11Z 2018-05-07T09:52:35Z "Currently, the webpages for images (PNG, GIF, JPEG, and TIFF) provide no link for downloading the original file. If the preview is a scaled version of the original file, it is left to the user to right-click on the preview image and choose ""Save link as..."" or ""Save target as..."" or somesuch (depending on the webbrowser used). It would more convenient and less confusing if there was an explicit Download link as is provided for on the webpages of other mediatypes. For example, if I am hosting a PNG file that has a scaled down preview, I could instruct someone to visit the page and click on the ""Download"" link -- there would be no concern about what browser they are using and no chance that they might mistakenly choose the ""Save image as..."" command. " saul 827 Reprocessing of media should retain preview filenames minor programming enhancement new 2013-12-29T12:39:34Z 2013-12-29T12:39:34Z "It would be nice if the medium and thumbnail previews of an entry retained their filenames when the entry is reprocessed. Currently if an entry is reprocessed, a new filename for the preview is generated by prepending a string representation of a 16-digit hexadecimal number to the previous preview filename. As an example, 'hippie-blanket.medium.jpg' might be renamed to 'd49ef4ff-ea43-4065-a6b4-64af149c76c0-hippie_blanket.medium.jpg'. One of the side effects of this renaming is that URLs which have previously been linked to the original preview will no longer be valid. If Mediagoblin could retain the original filename, this unfortunate breakage could be avoided." saul 832 add preprocess hook to process() of media_types.image processors major programming enhancement new 2014-01-14T17:50:22Z 2014-01-14T17:50:22Z "My branch image_preprocessing_hook at https://gitorious.org/mediagoblin-stock/mediagoblin/source/19d1f068b834e5f17106125b0199d3069b61afd3: has a hook (named imageprocessor_preprocess for now) that runs after common_setup in process() – useful for doing stuff to uploaded images before they are stored and resized. It's currently used in this plugin: https://gitorious.org/mediagoblin-stock/mediagoblin-hidden_original It'd be nice to have this in master :) " Kevin Brubeck Unhammer 838 "Moderation: report panel: ""Action Taken"" shows a date in the past (report date?)." major programming defect new 2014-01-23T20:28:09Z 2015-02-19T04:51:34Z "https://gobblin.se/mod/reports/ says in a 4-row table, about an issue resolved today: * Resolved: 2014-01-23 21:05 (also :06, :06, :07) * Action Taken: 2013-11-25 15:57 https://gobblin.se/mod/reports/1/ says it was: * reported 1 month, 4 weeks ago, * RESOLVED 09:05PM 2014-01-23." Aleksej 840 Moderation: user panel lists the number of comments posted, but not number of media posted/retained minor programming enhancement new 2014-01-23T20:45:15Z 2014-01-23T20:45:15Z "https://gitorious.org/mediagoblin/mediagoblin/source/cebd1ad71cd588994c290fd3fb031b106fedc45d:mediagoblin/templates/mediagoblin/moderation/user_panel.html#L72-78 {{{ {% trans %}ID{% endtrans %} {% trans %}Username{% endtrans %} {% trans %}When Joined{% endtrans %} {% trans %}# of Comments Posted{% endtrans %} }}} I see no reason there is the # of comments, but not of media." Aleksej 853 No RTL layout for document pages minor programming defect new 2014-02-27T11:23:43Z 2014-02-27T11:23:43Z "Media pages of document![0] are not aligned from right-to-left, whereas other media pages of images![1] and videos![2] are aligned from right-to-left. ![0]: http://mediagoblin.tami.org.il/u/alonlevy/m/id:623/ ![1]: http://mediagoblin.tami.org.il/u/alonlevy/m/another-of-ilan-s-logos/ ![2]: http://mediagoblin.tami.org.il/u/alonlevy/m/doppler-ultrasound-transceiver-demonstration/" Genghis Khan 856 Time interval localization fails minor graphic design/interface defect new 2014-03-04T15:01:05Z 2014-03-04T15:01:05Z "Time intervals, such as “1 hour, 20 minutes ago” are never translated, even though the i18n is implemented correctly. Cause: timesince.py uses lazy_pass_to_ungettext for the translation. The function, ungettext, requires a singular-plural pair. But this pair was not recognized when generating the .pot file. To be usable with ungettext, the record must contain both “msgid” and “msgid_plural”. Consequently, ungettext sees neither singular nor plural translation, even when it is present in the language file, and always defaults to the English string. Solution: when generating the .pot file (template for translators), be sure not to miss the ungettext aliased as “_” in timesince.py. Easier solution: just patch the .pot file with “fix-plurals-in-pot.patch” that I included in the attachment. This will fix the 6 special cases (year, month, …) and you can continue generating the template the same way you do now. Note: If you are wondering why “minutes” is mentioned twice, it is because timesince.py uses it via both ungettext and ugettext (in the case of “0 minutes”), and it wouldn't otherwise see it. You can either change it to ungettext with n=1, or have the word “minutes” twice in the .pot, I chose the latter because it didn't require changing the code. So, I believe it will work like this: if you patch the current mediagoblin_mediagoblin.pot and upload it to transifex, it will add these new words. Once people translate them, the .po files you'll export from transifex will already be in the correct format, and time intervals will appear in those languages, without changing any of the code. I tested it on my machine and it seems to work." digital-dreamer 857 Better audio thumbnail minor programming enhancement new 2014-03-05T16:57:43Z 2014-03-05T16:57:43Z "Currently the audio thumbnails are plotted spectrums of the files. The idea is nice, but causes visual clutter and makes the platform looking very scientific/expert/... but not like a media sharing portal that normal users like to use. So I suggest to replace this thumbnails/previews with: * VU plots - Are known to usual users [https://www.ceremade.dauphine.fr/~peyre/numerical-tour/tours/audio_1_processing/from their music players] * CD label metadata - Can be used from MP3/OGG if available" user-B 862 "Not require the ""mediagoblin"" user during install (or, other permissions solutions)" major documentation 0.12.0 defect new 2014-03-25T16:36:02Z 2021-09-02T12:56:02Z "Our present docs are presently very confusing because we suggest users make a ""mediagoblin"" user, but this isn't the same user that the web server runs as. Thus, people tend to run into permission issues. It would be easier for the user to run as www-data on Debian and similar machines, and whatever the equivalent is on Fedora/Red Hat/etc. How to do this and not make it *more* confusing? Maybe we could have some way to have separate install pages for each distro but have them ""build"" from the same base? I'm not sure that's possible though. Other solutions to help us avoid permision issues would also help." Christopher Allan Webber 863 A way for plugins to add translateable strings major programming enhancement new 2014-03-28T15:52:14Z 2016-01-13T18:13:38Z "It would be good for plugins to be able to add their own translateable strings. This should be totally possible to do in the plugin infrastructure; see http://babel.pocoo.org/docs/support/#extended-translations-class" Christopher Allan Webber 867 home_goblin.png is hard-coded to the /mgoblin_static path minor programming defect new 2014-04-19T17:28:29Z 2017-01-20T07:18:13Z "This causes the image to not show up when mediagoblin is installed in a sub-path of a virtual host. The image tag in templates/mediagoblin/bits/frontpage_welcome.html should be changed to: " anongoblin 869 user can edit and delete own comments minor programming enhancement new 2014-04-19T17:57:17Z 2016-11-07T11:10:45Z it would be nice if i (as a user) can edit my comment (for 5 minutes after posting, could be set in configuration) and delete it later. davidak 870 new media don't appear directly minor programming enhancement accepted 2014-04-19T18:14:05Z 2016-09-20T01:08:11Z "after i uploaded a file, i get redirected to my profile and see a success message but i don't see the uploaded media. if i reload once again, it is there. this shouldn't be necessary. of course videos need time to get transcoded, but it can display a thumbnail and on the media page a message, that the video transcoding has not finished yet, maybe with progress or link to overview." davidak 872 support avatar from libravatar and Gravatar minor programming enhancement new 2014-04-19T20:57:21Z 2014-04-19T20:57:21Z "a user should be able to select his avatar from libravatar, Gravatar (if there is one) or upload a new. https://www.libravatar.org/ http://gravatar.com/ https://issues.mediagoblin.org/ticket/499 also there should be a workflow for a new user after first login to fill out his profile. 1. select or upload avatar 2. fill out self description 3. link to homepage 4. upload your first media but that is another thing..." davidak 881 Make notification of moderators/admins about new reports more prominent. minor programming enhancement new 2014-05-08T15:44:07Z 2016-01-12T21:46:19Z Currently to find out that there is a new report, you have to click the down arrow and go to the Report Management Panel. When there is one report in a few months, there is no chance of dealing with them quickly and efficiently. Aleksej 882 Moderation: reason for report looks like a comment. minor graphic design/interface defect new 2014-05-08T16:26:06Z 2014-05-08T16:26:06Z "A user accidentally posted a moderation report instead of a comment: https://gobblin.se/u/avrs/m/a-user-accidentally-made-a-report-instead-of-a-comment/ ------------------------------------- [UserA] 2 days, 18 hours назад: [Comment 1 text] Reason for report: [UserB] 4 days, 18 hours назад [Comment 2 text] ------------------------------------- [Comment 2 text] is the stated reason for report, but it was actually intended as a comment. Although the UI that led to that could be improved, the UI shown above also needs to be improved, maybe by adding a border, and making it clear that the time and reporter's name are not a part of the reason message." Aleksej 890 Cannot detect zh_TW and zh_CN due to language list change in babel major programming defect new 2014-05-15T10:39:57Z 2014-05-15T10:39:57Z mediagoblin/tools/translate.py detects the available locales according to localedata from babel, but it has zh_Hant_TW and zh_Hant_CN but no zh_TW or zh_CN in the list. Yao Wei 893 Switch mg_globals over to using werkzeug context locals major programming enhancement new 2014-05-17T17:22:21Z 2016-01-13T18:15:43Z "Global variables suck, and break threading, and technically wsgi. We should use Werkzeug locals instead: http://werkzeug.pocoo.org/docs/local/" Christopher Allan Webber 908 Calculate volume of 3D media minor programming enhancement Rodrigo Rodrigues da Silva in_progress 2014-06-09T20:03:34Z 2014-12-09T16:29:48Z "It would be desirable to have mediagoblin calculate a STL/OBJ file's volume. It is a useful piece of information for 3D printer users. I've written some code that addresses this partially: it uses admesh to calculate a STL file's volume, since admesh currently doesn't support OBJ files. If admesh is not installed, it just bypasses the volume calculation cleanly." Rodrigo Rodrigues da Silva 917 Comment notifications are sent in the sender's language setting minor programming defect new 2014-07-16T19:08:39Z 2017-06-29T04:24:25Z When a user comments on a media entry, the notification email sent to the recipient is sent in the sender's language locale, not the recipient's. ayleph 924 LDAP authentication: configurable user attribute (currently: always 'uid') minor programming defect new 2014-07-25T21:24:00Z 2018-04-15T18:13:24Z "Currently user authentication works for a DN like the following: {{{ dn: cn=USERNAME,ou=people,dc=example,dc=org }}} Sadly the email retrieval fails to work since it relies on the fact that there is an attribute {{{uid=USERNAME}}}. This assumption is not always valid (see above: {{{cn=USERNAME}}}). Thus it would be reasonable to use the first part of the {{{LDAP_USER_DN_TEMPLATE}}} for the filter condition within the email handling code (instead of {{{uid=USERNAME}}}). See the attached patch for an implementation of this approach." sumpfralle 925 Consider reordering the media sidebar minor graphic design/interface enhancement new 2014-07-26T00:18:41Z 2014-07-26T00:18:41Z "Hi everybody, congratulations for your work in MediaGoblin. The media sidebar, right now, displays, in this order: * Date added * tags * collections * report media * license * location * exif * attachments * feature * metadata And these ones where I'm not quite sure where are they displayed (at the bottom, I think) * Download * Created * 3d info I think License should be near ""added time"", since the person uploading decided the license in that time. And Feature, Report media, and Download could be the last ones in the list (after you see all the info, you decide what to do with the media). My proposal: * Date added * Date created * License * Location * Exif * 3D info * attachments * metadata * tags * Collections * Feature media * report media * Download What do you think? I can prepare a patch when you decide the final order." Laura Arjona Reina 926 LDAP authentication: use RFC 2255 LDAP URLs for more flexibility minor programming defect new 2014-07-26T15:59:33Z 2014-08-27T00:31:29Z "Hi, the current LDAP authentication plugin can only handle LDAP schemas where a usable login string is part of the entry's DN: {{{dn: uid=john,ou=people,dc=example,dc=org}}} Another LDAP schema looks like this: {{{dn: cn=John Doe,ou=people,dc=example,dc=org}}} Here the login token is usally available only as an attribute (e.g. {{{uid}}}). Thus the current {{{LDAP_USER_DN_TEMPLATE}}} cannot work with the above schema. Other projects (e.g. LDAP authentication within the apache webserver) use the LDAP URL (see [[http://www.ietf.org/rfc/rfc2255.txt|RFC 2255]]. Such an URL allows to specify a base DN, a search scope and the attribute to be used for login matching. Attached you find a patch that I am using for such a setup. Maybe the old config style (based on {{{LDAP_USER_DN_TEMPLATE}}}) can be replaced with the LDAP URL, since I am not aware a use case that could not be covered with the latter one." sumpfralle 931 deployment documentation - switch to mediagoblin user with sudo minor documentation defect new 2014-08-01T12:19:23Z 2014-08-01T17:23:18Z "Switching to the mediagoblin user with sudo as mentioned in the document: http://mediagoblin.readthedocs.org/en/latest/siteadmin/deploying.html cause problems, at least with ubuntu 14.04: =================================== No password will be assigned to this account, and you will not be able to log in as this user. To switch to this account, enter either: '''sudo -u mediagoblin /bin/bash''' # (if you have sudo permissions) or: su mediagoblin -s /bin/bash # (if you have to use root permissions) =============================== After using ""sudo -u mediagoblin /bin/bash"" to switch to the mediagoblin user, and executing ./bin/gmg dbupdate for example, there is an error regarding the path of the directory .python-egg which points to homedir of the user that executed the ""sudo -u mediagoblin /bin/bash"" command. If you use ""sudo su -"" first to swicht to root and then enter the second command mentioned in the doc ""su mediagoblin -s /bin/bash"", it works perfectly. The .python-egg directory used in this case is the one in the mediagoblin user homedir. In my opinion, this: =================================== No password will be assigned to this account, and you will not be able to log in as this user. To switch to this account, enter either: '''sudo -u mediagoblin /bin/bash''' # (if you have sudo permissions) or: su mediagoblin -s /bin/bash # (if you have to use root permissions) =============================== should be replaced for something like this: =================================== No password will be assigned to this account, and you will not be able to log in as this user. To switch to this account, enter the following if you are logged as root: su mediagoblin -s /bin/bash In case you are not logged as root, excute first ""sudo su -"" to switch to the root user and then enter the command mentioned above. =============================== in the documentation." Alberto 933 Plugins should have a way to redirect to the login page minor programming enhancement new 2014-08-03T03:24:51Z 2014-08-03T03:26:14Z "I am writing a plugin that requires that the user be logged in before accessing the media home page. However, because I am hooking to the ""media_home_context,"" I am only able to modify the context, which, as far as I can tell cannot cause a redirect. The only way that I can see to do this redirect currently is to raise an exception that is handled by forwarding the user to the login page, but I could not find an appropriate existing exception. A 401 error may be appropriate, but according to [http://tools.ietf.org/html/rfc7235#section-3.1 RFC 7235], the server must send a WWW-Authenticate Header if it responds with a 401 error, which does not make sense since MediaGoblin uses a login page. Please forgive me if this functionality already exists and I missed it." Steve 941 OpenID fails with https site major programming defect new 2014-08-08T18:13:31Z 2014-08-08T18:13:31Z "When I try to log in with OpenID on my Mediagoblin site it fails with the following error: {{{ Verification of None failed: return_to does not match return URL. Expected u'https://media.saz.im/auth/openid/login/finish/', got u'http://media.saz.im/auth/openid/login/finish/?janrain_nonce=SIKRITSTUFF' }}} where I have replaced the nonce with SIKRITSTUFF just to be sure :-) In the file plugins/openid/views.py line 52 looks like this: {{{ host = 'http://' + request.host }}} If I replace the ""http"" with ""https"" here OpenID works. My server does have automatic rewrite of http => https so that is not the problem. So perhaps it is possible to detect if we are serving over https and setting that accordingly? " sazius 947 Media type configuration options are not documented trivial documentation enhancement accepted 2014-08-16T14:24:20Z 2016-07-25T00:54:35Z "Enabling the various media types is well documented, however no hint is given on how to configure media specific options, e.g. video quality. There are individual `config_spec.ini` files scattered around, but there's no mention of where to put those options in `mediagoblin_local.ini`." Matt Molyneaux 958 Spectrogram thumbnail creation fails with non-local file storage major programming defect new 2014-08-31T07:24:12Z 2016-01-15T16:06:46Z "Audio uploads fail when using the cloudfiles storage mechanism because the spectrogram thumbnail cannot be created. The spectrogram thumbnail generator assumes a local file path for the spectrogram and calls {{{get_local_path}}} which is not implemented for cloudfiles storage. {{{ 2014-08-31 01:51:09,264 INFO [mediagoblin.media_types.audio.transcoders] 100% done... 2014-08-31 01:51:09,264 DEBUG [mediagoblin.media_types.audio.transcoders] 2014-08-31 01:51:09,265 INFO [mediagoblin.media_types.audio.transcoders] Done 2014-08-31 01:51:09,266 INFO [mediagoblin.media_types.audio.transcoders] Quitting MainLoop gracefully... /path/to/mediagoblin/mediagoblin/media_types/audio/audioprocessing.py:168: DeprecationWarning: axis != 0 for ndim == 1; this will raise an error in future versions of numpy samples = numpy.concatenate((numpy.zeros(add_to_start), samples), axis=1) 2014-08-31 01:51:12,125 DEBUG [mediagoblin.media_types.audio.processing] Saving spectrogram... 2014-08-31 01:51:14,408 DEBUG [mediagoblin.storage.cloudfiles] Sending [u'media_entries', u'814', u'AX11_-_Fiasco.spectrogram.jpg'] to cloudfiles... 2014-08-31 01:51:17,180 ERROR [mediagoblin.processing.task] An unhandled exception was raised while processing 2014-08-31 01:51:17,180 WARNING [mediagoblin.processing] No idea what happened here, but it failed: NotImplementedError('This feature not implemented in this storage API implementation.',) 2014-08-31 01:51:17,186 DEBUG [mediagoblin.tools.processing] No processing callback for 2014-08-31 01:51:17,186 WARNING [mediagoblin.processing] No idea what happened here, but it failed: NotImplementedError('This feature not implemented in this storage API implementation.',) Error - : This feature not implemented in this storage API implementation. URL: https://goblinrefuge.com/mediagoblin/submit/ File '/path/to/mediagoblin/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/exceptions/errormiddleware.py', line 144 in __call__ app_iter = self.application(environ, sr_checker) File '/path/to/mediagoblin/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py', line 203 in __call__ return app(environ, start_response) File '/path/to/mediagoblin/mediagoblin/app.py', line 265 in __call__ return self.call_backend(environ, start_response) File '/path/to/mediagoblin/mediagoblin/app.py', line 242 in call_backend response = controller(request) File '/path/to/mediagoblin/mediagoblin/decorators.py', line 45 in wrapper return controller(request, *args, **kwargs) File '/path/to/mediagoblin/mediagoblin/decorators.py', line 72 in new_controller_func return controller(request, *args, **kwargs) File '/path/to/mediagoblin/mediagoblin/decorators.py', line 45 in wrapper return controller(request, *args, **kwargs) File '/path/to/mediagoblin/mediagoblin/decorators.py', line 72 in new_controller_func return controller(request, *args, **kwargs) File '/path/to/mediagoblin/mediagoblin/decorators.py', line 101 in wrapper return controller(request, *args, **kwargs) File '/path/to/mediagoblin/mediagoblin/submit/views.py', line 67 in submit_start urlgen=request.urlgen) File '/path/to/mediagoblin/mediagoblin/submit/lib.py', line 199 in submit_media run_process_media(entry, feed_url) File '/path/to/mediagoblin/mediagoblin/submit/lib.py', line 250 in run_process_media task_id=entry.queued_task_id) File '/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.13-py2.7.egg/celery/app/task.py', line 547 in apply_async link=link, link_error=link_error, **options) File '/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.13-py2.7.egg/celery/app/task.py', line 736 in apply request=request, propagate=throw) File '/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.13-py2.7.egg/celery/app/trace.py', line 354 in eager_trace_task uuid, args, kwargs, request) File '/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.13-py2.7.egg/celery/app/trace.py', line 253 in trace_task I, R, state, retval = on_error(task_request, exc, uuid) File '/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.13-py2.7.egg/celery/app/trace.py', line 240 in trace_task R = retval = fun(*args, **kwargs) File '/path/to/mediagoblin/mediagoblin/processing/task.py', line 98 in run processor.process(**reprocess_info) File '/path/to/mediagoblin/mediagoblin/media_types/audio/processing.py', line 270 in process self.generate_thumb(size=thumb_size) File '/path/to/mediagoblin/mediagoblin/media_types/audio/processing.py', line 196 in generate_thumb spectrogram_filepath = mgg.public_store.get_local_path(spectrogram) File '/path/to/mediagoblin/mediagoblin/storage/__init__.py', line 160 in get_local_path self.__raise_not_implemented() File '/path/to/mediagoblin/mediagoblin/storage/__init__.py', line 80 in __raise_not_implemented ""This feature not implemented in this storage API implementation."") NotImplementedError: This feature not implemented in this storage API implementation. }}} " ayleph 959 Create separate git repository for MediaGoblin themes trivial infrastructure enhancement new 2014-09-01T03:26:45Z 2014-12-09T16:21:34Z "MediaGoblin should provide a separate mediagoblin-themes repository similar to that which the Pelican project maintains [0]. It would be simple to set up, and would provide a common platform for theme hosting and user theme discovery. The core themes could be maintained directly in the repository, and any user-contributed themes could be listed / provided as git submodules. To be included, each theme should ideally include at least one screenshot of the theme as deployed and state which MG versions it is valid against. [0] https://github.com/getpelican/pelican-themes" Jim Campbell 960 Add search functionality major programming enhancement tofay in_progress 2014-09-01T09:17:48Z 2016-03-07T21:57:53Z I cannot find an option to search for media in any MediaGoblin instance. That is quite limiting for finding new media by content. anongoblin 963 to/cc/bto/bcc not supported on activities major programming 1.0 enhancement Jessica Tallon in_progress 2014-09-05T10:52:46Z 2016-02-16T22:45:05Z "As of #905 we now have activities in GMG. Activities however should have 4 extra fields which they currently do not have. These should specify who the activity goes to. The fields are to/cc/bto/bcc. In these fields they can take Lists which need to be created. Lists can be user defined or a special type which are: - Public (everyone including those not logged in) - Following (those who are following the user posting) - Followers (those who the user posting is following) The concept of following a user currently doesn't exist in MediaGoblin however for this issue such a spcialised list should exist so that we can record who the user wants to show the media to but currently just be an empty list of users. Discussions with Chris and Elrond about implementing this as it's a many to many for two types would be to have a Reciever model which User and List inherit from. The id would be on reciever and then you would have a foreignkey to the reciever e.g. {{{#!python class Reciever(Base): """""" Model which represents person(s) who might recieve something """""" __tablename__ = ""core__recievers"" id = Column(Integer, primary_key=True) class User(Reciever, UserMixin): # This would be the existing user model without the id as that's been moved to reciever. pass class List(Reciever): # This would the representation of a List pass }}} I'm unsure how the special cases should be represented. " Jessica Tallon 964 Enable HSTS on wiki.m.o and issues.m.o major programming enhancement Simon Fondrie-Teitler new 2014-09-07T05:06:22Z 2016-09-18T12:24:00Z I've enabled it with the setting of 1 day for now to be safe, I'll bump it up when I'm sure there are no issues. Simon Fondrie-Teitler 967 Ability to display panorama images as a mediatype major programming enhancement new 2014-09-16T06:00:12Z 2014-09-16T06:00:12Z "With the default camera apps on both Android and iOS (as well as some FOSS camera apps such as Focal - the default camera app on Cyanogen Mod), panorama images are becoming more and more common. I suggest that being able to display panorama images would be a highly useful media type to be able to display. I would suggest the use of the Pannellum library, as it's FOSS, HTML5, plugin free, actively maintained, works across recent versions of all major browsers in only 11kb. It can be found at https://github.com/mpetroff/pannellum . Bugsbane" anongoblin 973 Re-enable check_db_up_to_date() in app.py after fixing session issues critical programming defect Christopher Allan Webber in_progress 2014-09-19T21:14:59Z 2016-02-16T22:43:59Z We had a tool that, as its name implied, checked if databases were up to date. Unfortunately, it was causing a bunch of random errors with postgres sessions in 0.7.0. As such, in o.7.1, this is disabled, but we want this to be re-enabled for 0.8.0. This requires some investigating on how to do right. Christopher Allan Webber 976 Bring back the ascii goblin minor programming 0.11.0 defect new 2014-09-23T16:20:33Z 2020-04-23T12:14:24Z "Previously, if there were an error in MediaGoblin, the default behavior was to show an error page with a little ascii art goblin. This has been removed, because that error page was dependent on a paste error middleware that doesn't exist in python 3. It would be nice to have that back by 0.8.0." Christopher Allan Webber 979 Server Error is untranslatable trivial graphic design/interface defect new 2014-09-26T09:46:40Z 2014-09-30T15:19:54Z "The following page is available only in English. {{{ #!html

Server Error

YEOWCH... that's an error!

.-------------------------.
|     __            _     |
|    -, \_,------,_//     |
|     <\  ,--   --.\      |
|      / (x  ) ( X )      |
|      '  '--, ,--'\      |
|     / \ -v-v-u-v /      |
|     .  '.__.--__'.\     |
|    / ',___/ / \__/'     |
|    | |   ,'\_'/, ||     |
|    \_|   | | | | ||     |
|     W',_ ||| |||_''     |
|      |  '------'|       |
|      |__|     |_|_      |
|     ,,,-'     '-,,,     |
'-------------------------'
  

Something bad happened, and things broke.

If this is not your website, you may want to alert the owner.



Powered... er broken... by MediaGoblin, a GNU Project.

}}}" Genghis Khan 986 Double confirmation needed to delete media minor graphic design/interface enhancement review 2014-10-18T12:57:28Z 2017-01-30T13:02:18Z "When deleting a media item you have to first check a checkbox and then click then delete button. This could be simplified by getting rid of the checkbox. Accidental media deletion should be prevented by the dialogue itself." sebomoto 987 Account Settings: Better grouping of sections major graphic design/interface enhancement new 2014-10-18T12:57:53Z 2014-10-18T12:57:53Z "Currently the ""edit Accout"" page is poorly structured. There are also three links who point exactly to the same page (change passwords). It would be useful to group the three sections ""change password"", ""email notifications"" and ""license"" into visually clear separated parts. " fbnlrt 988 Meta information right next to picture is more prominent than title and description minor graphic design/interface enhancement new 2014-10-18T12:58:27Z 2016-09-20T01:04:24Z "Currently the layout of the picture detail page puts the meta information (upload date, tags, report image button, etc) right next to the image, making it very present. The title, description and comments are pushed down below. Arguably these are more important than the meta information though. A possible solution for this would be to make the image take the whole width in the first block (16 columns). Then the current sidebar would just be pushed down to start at the same height as the title and description." jan 990 Upload of multiple files in one step is not possible major programming enhancement new 2014-10-18T13:01:33Z 2016-02-01T18:27:51Z "Upload works only for 1 file per upload. Upload should be easier to upload several files at once to a collection. First step for could be selection of multiple files. Further possible enhancement is a drag/drop zone to move serveral files in. " anongoblin 992 "Change Me ""Media Processing Panel"" into something more simple" minor graphic design/interface enhancement new 2014-10-18T13:07:50Z 2016-01-12T22:35:28Z "The phrase ""Media Processing Panel"" is kind of to excessive. Something like ""Media queue"" would be much more appropriate." fbnlrt 998 Profile in Topbar minor graphic design/interface enhancement new 2014-10-18T13:23:40Z 2014-12-11T15:20:47Z "In topbar you can only see the triangle. To show users that they logged in show their avatar, nickname or other information (like twitter). " michael 999 Notifications panel minor graphic design/interface enhancement Jeremy Pope in_progress 2014-10-18T13:27:27Z 2014-12-08T19:44:48Z "Notifications show full width. No distinction between notifications and menu. A start could be to add a top margin of about 20px to: .header_notifications" sebomoto 1004 Videoplayer has wrong height for videos with width>640 major programming defect accepted 2014-10-20T16:28:12Z 2016-07-22T16:02:24Z "It is possible to skip transcoding videos that are larger than 640 pixels in some dimension. For instance, this way a user can upload 1280x720 webm videos without transcoding them to smaller. However, there is a bug in the player for these videos. If a video is wider than 640 pixels, the width of the videoplayer is scaled to 640 pixels but the height of the videoplayer is the same as of the video. Thus, for a 1280x720 video, the player has size 640x720, leaving black bars on top and bottom of the video. Fullscreen obviously works fine. A sketch of a solution: HTML video player is scaled appropriately if only width or height is given. Thus, give the width as min(width,640) and let the height be chosen automatically. Modify the video tag in the template mediagoblin/templates/mediagoblin/media_displays/video.html: {{{