﻿__group__	ticket	summary	component	status	milestone	type	created	_changetime	_description	_reporter
	176	Return behavior after adding media is non-intuitive	ui	accepted		defect	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
	244	GIF images work on media pages in most (of my personally experianced) cases, but not all.	graphic design/interface	accepted		defect	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
	341	Simultaneous upload and metadata/description editing	ui	accepted		defect	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	programming	accepted		defect	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 <http://babel.edgewall.org/wiki/Documentation/dates.html>`_



}}}"	Elrond
	5613	Configuration for default video quality	programming	accepted	0.13.0	defect	2020-05-13T22:38:49Z	2021-09-19T13:05:14Z	"with 0.10 version, a nice enhancement for video quality selection. 3 level are available by default (360, 480 and 720p), is there any configuration to generate only some of them and what matter more for me is could we force a default quality for the user, actually it's the lowest by default, which poorly show quality works for people not knowing how to change the quality...

thanks a lot again,
"	TmCTux
	180	Have a javascript-y autocomplete feature for tags you've used before	ui	accepted		enhancement	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	programming	accepted		enhancement	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
	227	add multi-tag views	programming	accepted		enhancement	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
	247	Add a language selector	programming	accepted		enhancement	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
	263	A way to choose filename different from the before-upload one	programming	accepted		enhancement	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)	programming	accepted		enhancement	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
	320	Video: Extract and save poster image	programming	accepted		enhancement	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
	385	Show the original’s file size and dimensions on the file page	other	accepted		enhancement	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
	260	A way for a reader to see thumbnails/resized versions in other sizes	programming	accepted		enhancement	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
	268	display where media is used (on external locations)	programming	accepted		enhancement	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
	346	Keyboard shortcuts	programming	accepted		enhancement	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	other	accepted		enhancement	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 <http://wiki.mediagoblin.org/User:Manolinux#Openx_support>`_

Tell me your opinion here or by IRC.



}}}"	Manolinux aka Mu
	351	Markdown editor	programming	accepted		enhancement	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 <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
	417	JavaScripts and WTForms messages are not translated	programming	accepted		defect	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	programming	accepted		defect	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
	465	Cannot delete attachments	programming	accepted		defect	2012-07-07T19:56:24Z	2015-01-20T17:08:59Z	"Attachments cannot be deleted without deleting the whole ""medium."""	Jakob Kramer
	508	You shouldn't have to upload a whole file to find out mediagoblin doesn't support it	programming	accepted		defect	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
	692	Proper documentation on how to author tests	documentation	accepted		defect	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
	1004	Videoplayer has wrong height for videos with width>640	programming	accepted		defect	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:
{{{
<video controls
          {% if global_config['plugins']['mediagoblin.media_types.video']['auto_play'] %}autoplay{% endif %}
          {% if media.media_data.width > 640 %}width=640{% else %}width={{ media.media_data.width }}{% endif %}
          preload=""auto"" class=""video-js vjs-default-skin"">
}}}

A few things to consider:
 * I hardcoded 640, but it should be retrieved somehow.
 * I removed data-setup because it breaks this fix and I think it's not valid HTML"	Jaakko Luttinen
	1063	Impeller should upload photos	programming	accepted	1.0	defect	2014-12-11T14:42:24Z	2017-07-01T20:53:47Z	"It would be great to get it so that you could upload photos to mediagoblin via Impeller. Currently however you can't even get through the OAuth. It initially looked like Impeller was site scraping however it would seem:

/from #pump.io on Freenode/
{{{
<jessica_lily> XgF: I'm wondering how possible it would be to change the site scraping behaviour of impeller with regards to the verifier? or at least provide some kind of fallback which allows you to copy and paste the verifier and enter it manually
<XgF> Jessica_lily: eh? Impeller expects a redirect to a https uri with the verifier. When it detects that, it closes the web view and does the background oauth flow
}}}

"	Jessica Tallon
	1070	Handling languages Babel currently doesn't (Na'vi, Lojban)	infrastructure	accepted		defect	2014-12-12T21:35:24Z	2016-01-09T22:36:44Z	"Currently, Babel doesn't support languages like Na'vi, Lojban.  The unfortunate side effect of this is that when our language tooling hits these languages, it explodes.

Looking into how to fix this, it looks like Babel [https://github.com/mitsuhiko/babel/blob/master/scripts/download_import_cldr.py#L16 downloads] the [http://cldr.unicode.org/ CLDR data] on languages, and this is used to populate a big ol' dictionary which is stored in [https://github.com/mitsuhiko/babel/blob/master/babel/localedata.py#L22 babel.localedata:_cache].  Unfortunately, while we *can* monkeypatch this variable (simply [https://github.com/mitsuhiko/babel/blob/master/babel/localedata.py#L51 load('en_US')] once then append 'jbo' or etc to the dictionary), the value we would have to supply is a very, very complex data structure, and I doubt we could provide it correctly.  This value is extracted by Babel during the [https://github.com/mitsuhiko/babel/blob/master/scripts/download_import_cldr.py CLDR data downloading/importing process] and it is a non-trivial exercise.

I [https://github.com/mitsuhiko/babel/issues/30#issuecomment-66796699 filed a bug looking for a workaround for unidentified languages], but I think a workaround will be hard given the large amount Babel relies on this data.  So, probably, we will need to supply CLDR data, but that data is too complex to just write by hand.

One way or another (monkeypatching or not), in order to supply these, we need the proper CLDR data.  I spoke to someone involved in the process, and found two things:

* They are welcome to contributions of Na'vi and Lojban to their catalog, and there is a [http://cldr.unicode.org/development/new-cldr-developers new contributor page]. We should (and likely will) do this.  Probably, the process for getting things officially will take some time.
* In the meanwhile, while going through the process to generate those, we should be able to get the appropriate files to run through the necessary tooling to generate the data we need.
"	Christopher Allan Webber
	5483	audio player is not accessible with screen readers	graphic design/interface	accepted		defect	2016-10-17T15:03:46Z	2016-10-18T22:32:48Z	"Hi,
I am blind, so use a screen reader to access the web. However, your audio player (not sure about video) is inaccessible with them. For example, the play button shows to my screen reader as a clickable of 'black up pointing small triangle"" which is not very descriptive. However, when I do click on the triangle, the pause button is a symbol that my screen reader cannot recognize, which simply speaks as clickable. This is on windows, using jaws for windows. I haven't tested with NVDA (an open source screen reader), but with orca on linux, the clickable isn't even seen at all, and there is no way to play the audio.
For audio (and video, possibly) I can recommend able player (https://ableplayer.github.io/ableplayer/) as an alternative that is guaranteed to be accessible if done right. IT could also introduce new features, such as closed captions and transcripts on videos.
Thanks,
-Michael.
"	Michael Taboada
	5485	Audio player controls not announced to Orca screenreader	graphic design/interface	accepted		defect	2016-10-18T19:43:41Z	2016-10-18T22:19:01Z	"As reported on the Orca Mailing List: https://mail.gnome.org/archives/orca-list/2016-October/msg00113.html

there is at least one instance with an inaccessible video player control:
http://vidstorm.tk/u/storm_dragon/m/the-insane-song/

Looking into the Markup it looks like audio.js is the problematic bit:
http://git.savannah.gnu.org/cgit/mediagoblin.git/tree/mediagoblin/static/js/audio.js

The user reported it in https://mail.gnome.org/archives/orca-list/2016-October/msg00120.html as

""There are no controls, no play, stop, pause, anything other than the slider, which itself is unlabeled.""

A good entry point was suggested in https://mail.gnome.org/archives/orca-list/2016-October/msg00121.html

What led to the decision of using/writing this audio.js?
Where there alternatives to be considered?"	André Jaenisch
	400	Media licensing should be human readable	programming	accepted		enhancement	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	programming	accepted	1.0	enhancement	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
	467	write test scaffolding for core plugins	programming	accepted		enhancement	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
	486	Drag and drop media uploading support	programming	accepted		enhancement	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
	551	Create test that makes sure all migrations are sane	programming	accepted		enhancement	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
	567	Support For Ogg Vorbis+Theora	programming	accepted		enhancement	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
	613	Improving Media collection	programming	accepted		enhancement	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
	734	Document the config options available in config_spec.ini	documentation	accepted		enhancement	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
	782	Spectogram should be created client side	programming	accepted		enhancement	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
	1086	Add CAPTCHA support	infrastructure	accepted		enhancement	2015-01-11T23:28:45Z	2016-01-15T16:09:59Z	Add template and authentication hooks to enable CAPTCHA plugins to be easily integrated.	ayleph
	5319	support for HQ videos	programming	accepted		enhancement	2015-05-20T21:23:43Z	2016-02-16T21:45:51Z	"Hey there, i tryed to let the Transcoder transcoding in better Quality (1080p).
So i use this options for example:

{{{

# vp8enc options
self.destination_dimensions = kwargs.get('dimensions', (1080, 1080))
self.vp8_quality = kwargs.get('vp8_quality', 10)
}}}


...in the transcoding.py

After assetlink and dbupdate, there has nothing changed.
I think the handling of videos on ""Media""goblin is a big problem.
You cant enjoy Videos in that damn bad quality!

----

So i think, okey lets transcode to webm Files on the Client PCs before uploading - no, you can forget it! 
The Player Interface is a bad Joke on untranscoded Files! 
Here an Example of 1080p WebM: https://media.tchncs.de/u/milan/m/test/

I understand, that the Player dont let you switch in Resolutions.
But damned, so let us please configure in which Quality Videos can uploaded by users..."	Boris Bobrov
	458	Functional testing via selenium, phantomjs, or similar	programming	accepted		task	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
	598	Support for UTF-8 paths	programming	accepted		task	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 <module>
    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
	220	RTL (right-to-left) language support.	programming	accepted		defect	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
	530	Airy: audio player’s time indicator is low-contrast	graphic design/interface	accepted		defect	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
	591	Default theme handles thumbnails for small pictures poorly	graphic design/interface	accepted		defect	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	graphic design/interface	accepted		defect	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"
	720	"""file correctly uploaded"" bar is misleading"	graphic design/interface	accepted		defect	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
	777	Not possible to edit collection item notes	graphic design/interface	accepted		defect	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
	823	Ugly previews of scaled indexed images	programming	accepted		defect	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
	5318	cannot write mode P as JPEG	programming	accepted		defect	2015-05-04T00:31:46Z	2020-05-12T03:21:21Z	"A user tried to upload an image which produced the following error. A stackoverflow thread mentions converting to RGB space.

https://stackoverflow.com/questions/21669657/getting-cannot-write-mode-p-as-jpeg-while-operating-on-jpg-image

{{{
(mediagoblin-0.8.0) ~/mediagoblin $ bin/gmg reprocess run 4028 initial
DEBUG:mediagoblin.processing.task:Processing <MediaEntry 4028: otters>
ERROR:mediagoblin.processing.task:An unhandled exception was raised while processing <MediaEntry 4028: otters>
WARNING:mediagoblin.processing:No idea what happened here, but it failed: IOError('cannot write mode P as JPEG',)
WARNING:mediagoblin.processing:No idea what happened here, but it failed: IOError('cannot write mode P as JPEG',)
Traceback (most recent call last):
  File ""bin/gmg"", line 9, in <module>
    load_entry_point('mediagoblin==0.8.1.dev0', 'console_scripts', 'gmg')()
  File ""/path/to/mediagoblin/mediagoblin/gmg_commands/__init__.py"", line 142, in main_cli
    args.func(args)
  File ""/path/to/mediagoblin/mediagoblin/gmg_commands/reprocess.py"", line 293, in reprocess
    run(args)
  File ""/path/to/mediagoblin/mediagoblin/gmg_commands/reprocess.py"", line 205, in run
    reprocess_info=reprocess_request)
  File ""/path/to/mediagoblin/mediagoblin/submit/lib.py"", line 257, in run_process_media
    task_id=entry.queued_task_id)
  File ""/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.17-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.17-py2.7.egg/celery/app/task.py"", line 739, in apply
    request=request, propagate=throw)
  File ""/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.17-py2.7.egg/celery/app/trace.py"", line 355, in eager_trace_task
    uuid, args, kwargs, request)
  File ""/path/to/mediagoblin/lib/python2.7/site-packages/celery-3.1.17-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.17-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 101, in run
    processor.process(**reprocess_info)
  File ""/path/to/mediagoblin/mediagoblin/media_types/image/processing.py"", line 318, in process
    self.generate_thumb(size=thumb_size, filter=filter, quality=quality)
  File ""/path/to/mediagoblin/mediagoblin/media_types/image/processing.py"", line 221, in generate_thumb
    filter, size)
  File ""/path/to/mediagoblin/mediagoblin/media_types/image/processing.py"", line 125, in resize_tool
    quality, filter)
  File ""/path/to/mediagoblin/mediagoblin/media_types/image/processing.py"", line 81, in resize_image
    resized.save(resized_file, quality=quality)
  File ""/path/to/mediagoblin/lib/python2.7/site-packages/PIL/Image.py"", line 1682, in save
    save_handler(self, fp, filename)
  File ""/path/to/mediagoblin/lib/python2.7/site-packages/PIL/JpegImagePlugin.py"", line 571, in _save
    raise IOError(""cannot write mode %s as JPEG"" % im.mode)
IOError: cannot write mode P as JPEG
}}}"	ayleph
	82	"""safety level""/ or some type of data for (mature) content moderation"	programming	accepted		enhancement	2011-05-30T18:41:00Z	2016-10-08T12:56:27Z	"{{{
#!rst
See
`http://www.flickr.com/help/filters/ <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	programming	accepted		enhancement	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	programming	accepted		enhancement	2011-07-25T00:09:00Z	2016-09-16T02:44:27Z	"{{{
#!rst
Tagging (`#360 </issues/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
	234	Add RDFa to HTML output	programming	accepted		enhancement	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
	364	Shotwell integration with mediagoblin API	programming	accepted		enhancement	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 <http://redmine.yorba.org/projects/shotwell/wiki/ShotwellArchWritingPlugins>`_



}}}"	Christopher Allan Webber
	499	the avatar image is necessary	programming	accepted		enhancement	2012-09-19T03:39:51Z	2014-10-19T18:28:39Z	need an option to upload an avatar, I think something elemental.	Charlie Vegan
	519	A way to link to a position in a video/audio (timestamp)	programming	accepted		enhancement	2012-10-17T13:59:04Z	2014-07-24T14:04:36Z		Aleksej
	635	"REQUEST: Add a ""like"" (and maybe dislike) function"	graphic design/interface	accepted		enhancement	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	programming	accepted		enhancement	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
	653	Add capability for embed codes to show media on other websites	programming	accepted		enhancement	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
	673	Anonymous Commenting	programming	accepted		enhancement	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
	696	Version checking against MediaGoblin for plugins	programming	accepted		enhancement	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
	870	new media don't appear directly	programming	accepted		enhancement	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
	5434	Lightbox effect for images	graphic design/interface	accepted		enhancement	2016-03-02T17:07:20Z	2021-04-09T06:18:11Z	Adding lightbox effect for images would be a good enhancement.	Saksham Agrawal
	350	"Document what ""Category"" options are"	documentation	accepted		task	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 </issues/699>`_, I would be happy to document that, if
someone explained the last two to me.



}}}"	maiki interi
	714	"""Change forgotten password"" e-mail subject is not localizable"	graphic design/interface	accepted		defect	2013-05-31T01:08:01Z	2016-01-14T11:13:54Z	"Subject: ""GNU MediaGoblin - Change forgotten password!"" is not translatable."	Aleksej
	164	"Consider cache ""table"""	programming	accepted		enhancement	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
	947	Media type configuration options are not documented	documentation	accepted		enhancement	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
	1051	"""Max file size: X mb"" should state ""MiB"", not ""mb""."	graphic design/interface	accepted		enhancement	2014-12-04T23:04:26Z	2016-07-25T00:56:26Z	"First of all, thanks for your awesome work in Mediagoblin.

I know this might sound very picky and even stupid, but stating ""MB"", in caps, would be wrong, because the real unit used for files is, universally, but commonly misnamed, the mebibyte, MiB.

It's commonly misnamed as ""MB"" for historical reasons, and even if incorrect, I can understand the resistance to change.

But stating ""mb"" is wrong in all levels. Mega is ""M"", not ""m"" (which could be 'meters'), and ""b"" means bits, not bytes.

I'm providing a patch to be less annoying in case you feel this is an acceptable change. I hope it's well done, it comes from a ""git diff""

"	anongoblin
Sturm	382	If video support is turned off after videos have been uploaded, videos are still shown and cause an error when clicked	programming	in_progress		defect	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 -
<class 'mediagoblin.media_types.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: URL:
`http://ec2-107-20-7-95.compute-1.amazonaws.com/u/s22/m/some-video/ <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'): <StaticURLParser '/opt/mediagoblin/user_dev/media/public'>, (None, '/mgoblin_static'): <StaticURLParser '/opt/mediagoblin/mediagoblin/static'>, (None, ''): <beaker.middleware.SessionMiddleware object at 0xa5bf54c>}Jan 25 00:21:24 domU-12-31-39-0C-50-13 mediagoblin.fcgi: beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0xa5bf54c>>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': <mediagoblin.staticdirect.RemoteStaticDirect object at 0xa5bf68c>, 'app': <mediagoblin.app.MediaGoblinApp object at 0xa55dbcc>, 'db': Database(Connection('localhost', 27017), u'mediagoblin'), 'urlgen': <routes.util.URLGenerator object at 0xa5ba14c>, 'start_response': <function session_start_response at 0xa6221ec>, 'session': {'_accessed_time': 1327450884.558526, '_creation_time': 1327450884.558526}, 'full_path': '/u/s22/m/some-video/', 'template_env': <jinja2.environment.Environment object at 0xa623eec>, '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 <mailto: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
Tsyesika	963	to/cc/bto/bcc not supported on activities	programming	in_progress	1.0	enhancement	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
Tsyesika	5365	Some improvements to collections views	programming	in_progress		enhancement	2015-12-06T04:45:13Z	2016-02-01T15:37:08Z	"My feature branch, which is split up into 3 commits at the moment:

https://github.com/orblivion/mediagoblin/commits/collection-ui-improvements

These are some improvements that I thought would be good, though it could be controversial. The sorting/filtering part is spawned from what I thought was somewhat of a requirement created by #5360, though independent enough that I split it out.

1) Media items in the collection view don't show the title of the media entry, we just show the collection item note. I think it makes sense to default to the media entry title if there is no note:

https://github.com/orblivion/mediagoblin/commit/25e424023226a4823b0f50258fe54a28964a202e

The potential issue I see with this is that collections can hold things other than media entries, and those might not have titles. I'm not sure what else you had in mind to hold, so I'll put this out there for now to see what you think. I could work around it but I want to make sure it's necessary.

2) Collections are currently sorted by descending `position`. I actually don't see anywhere in the codebase that `position` is ever set, so I presume this is a ""TODO"". The problem is that the way collections work now, it *sort of* sorts by ascending `id`. I guess the database does this naturally. The reason I say *sort of* is that I think some things start to get funny if you delete items. So, I thought I'd formalize it by sorting collections by ascending (`position`, `id`). If you start setting `position` and leave it as sorting descending, you'll end up reversing the way it's been working so far. (Unless you intended the sense of `position` and `id` to be opposite of each other?)

Also in this commit, I filter by whether the media item is processed.

https://github.com/orblivion/mediagoblin/commit/ad9a9d8a756a55e36e83696639d6dd558eb497e3

3) Collections currently show up as a text list. This seems rather unpolished. Here, I make it a gallery view, using the first item in the gallery if available:

https://github.com/orblivion/mediagoblin/commit/577911aed004e8a9fb2d2c6f9d133568dac3361c"	Daniel Krol
ani	5502	Does not work with LibreJS	graphic design/interface	in_progress	0.13.0	defect	2017-03-20T18:47:14Z	2021-09-19T13:47:55Z	"GNU MediaGoblin does not work with GNU LibreJS.

There was no ""JavaScript license information"" link on the GNU MediaGoblin page, so I coludn't manually check it."	CharlieBrown
ayleph	5316	disallow creating blog post without title	programming	in_progress		defect	2015-04-27T19:48:05Z	2016-03-06T21:28:39Z	The blog plugin allows users to create a blog post without a title. This also causes the slug to be empty. The server throws an error goblin when a user clicks on a blog entry with no title and no slug.	ayleph
ayleph	5437	blog media_type uses inconsistent naming	programming	in_progress		defect	2016-03-03T01:40:07Z	2017-06-29T04:29:05Z	"The blog media_type hasn't been working for quite some time due to naming conflicts. The problem was introduced in [http://git.savannah.gnu.org/gitweb/?p=mediagoblin.git;a=commitdiff;h=511ce0d6c755dbdbe4f045f20fd57164584958f3 511ce0d]when `mediagoblin/media_types/blog/__init__.py` was changed as below.

{{{
--- a/mediagoblin/media_types/blog/__init__.py
+++ b/mediagoblin/media_types/blog/__init__.py
@@ -18,7 +18,7 @@ from mediagoblin.media_types import MediaManagerBase

 from mediagoblin.tools import pluginapi

-MEDIA_TYPE = 'mediagoblin.media_types.blog'
+MEDIA_TYPE = 'mediagoblin.media_types.blogpost'
}}}

This causes new blog entries to be added to `core__media_entries` with `media_type = mediagoblin.media_types.blogpost`. However, all the blog code is located at `mediagoblin/media_types/blog`. This causes server errors like below.

{{{
...
File '/path/to/mediagoblin/mediagoblin/db/models.py', line 665 in media_data
  return getattr(self, self.media_data_ref)
File 'build/bdist.linux-x86_64/egg/sqlalchemy/util/langhelpers.py', line 754 in __get__
File '/path/to/mediagoblin/mediagoblin/db/models.py', line 687 in media_data_ref
  return import_component(self.media_type + '.models:BACKREF_NAME')
File '/path/to/mediagoblin/mediagoblin/tools/common.py', line 34 in import_component
  __import__(module_name)
ImportError: No module named blogpost.models
}}}

I fixed this long ago on one of my instances. I'll post the patch and migration that would be required to fix it on someone else's instance."	ayleph
ayleph	5444	Implement 'type_match_handler' hook for all core media types	programming	in_progress		defect	2016-03-23T17:14:45Z	2020-05-12T03:23:18Z	"Since the gstreamer-1.0 update, uploaded media are sniffed and very often (always?) produce messages like below, even when the media are successfully processed. Breton says this is not intentional and should be addressed.

{{{
No plugins handled extension .jpg
}}}"	ayleph
ayleph	715	Move CloudFiles storage backend over to pyrax	programming	in_progress	0.11.0	enhancement	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
berkerpeksag	5059	Switch to use argparse	programming	in_progress		enhancement	2015-03-07T20:26:24Z	2016-09-17T15:59:17Z	"> Deprecated since version 2.7: The optparse module is deprecated and will not be developed further; development will continue with the argparse module.

So let’s use argparse instead.

-------
`git request-pull`:
{{{
The following changes since commit fc3c8f21a08a97051a709cb1a41b4339c3748ab5:

  Patch from breton: fix #5053 (gmg addmedia broken in 0.8.0) (2015-03-05 17:45:54 -0600)

are available in the git repository at:

  https://bitbucket.org/peekpeak/mediagoblin.git optparse-deprecated

for you to fetch changes up to 9fb7ef927e23f2f186678418fc93c1fee57e9176:

  use argparse instead of optparse (2015-03-07 21:15:17 +0100)

----------------------------------------------------------------
Jakob Kramer (3):
      add a handler to logger
      VideoThumbnailMarkII was deleted, use capture_thumb
      use argparse instead of optparse

 mediagoblin/media_types/video/transcoders.py | 73 +++++++++++++---------------
 1 file changed, 33 insertions(+), 40 deletions(-)
}}}"	gandaro_
breton	728	Collection page shows thumbnails in reverse order	programming	in_progress	0.13.0	defect	2013-06-24T08:01:47Z	2021-10-02T01:09:04Z	"The collection page at /u/<username>/collection/<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
breton	5376	Comment links cause server errors with recent migrations	programming	in_progress	1.0	defect	2015-12-18T03:38:55Z	2017-06-21T10:19:24Z	"Following a comment link (like `http://mediagoblin.example.org/u/user/m/my-media/c/1`) after applying federation updates results in a server error.

{{{
Error - <type 'exceptions.AttributeError'>: 'NoneType' object has no attribute 'comment'
URL: http://photos.technicallyandrew.com/u/andrew/m/belfast-87a3/c/2/
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/mediagoblin/app.py', line 342 in __call__
  return self.call_backend(environ, start_response)
File '/path/to/mediagoblin/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg/werkzeug/wsgi.py', line 411 in __call__
  return self.app(environ, start_response)
File '/path/to/mediagoblin/mediagoblin/app.py', line 276 in call_backend
  return self._finish_call_backend(request, environ, start_response)
File '/path/to/mediagoblin/mediagoblin/app.py', line 318 in _finish_call_backend
  response = controller(request)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 47 in wrapper
  return controller(request, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 210 in wrapper
  return controller(request, media=media, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/decorators.py', line 170 in wrapper
  return controller(request, page=page, *args, **kwargs)
File '/path/to/mediagoblin/mediagoblin/user_pages/views.py', line 135 in media_home
  mark_comment_notification_seen(comment_id, request.user)
File '/path/to/mediagoblin/mediagoblin/notifications/__init__.py', line 64 in mark_comment_notification_seen
  comment = Comment.query.get(comment_id).comment()
AttributeError: 'NoneType' object has no attribute 'comment'
}}}

"	ayleph
cwebber	973	Re-enable check_db_up_to_date() in app.py after fixing session issues	programming	in_progress		defect	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
cwebber	5503	Move federation code to ActivityPub spec	programming	in_progress	1.0	enhancement	2017-04-11T16:21:23Z	2018-04-19T14:10:25Z	Convert the federation code from using the legacy Pump API spec to [https://www.w3.org/TR/activitypub/ ActivityPub].	Christopher Allan Webber
jpope	999	Notifications panel	graphic design/interface	in_progress		enhancement	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
larjona	5311	Improve plugin documentation	documentation	in_progress		enhancement	2015-04-11T11:03:30Z	2015-04-11T11:09:29Z	"All the available plugins should be listed.
List plugins in alphabetical order.
"	Laura Arjona Reina
molgrum	5328	White/blacklisting mimetypes in attachments and check file size	programming	in_progress		enhancement	2015-06-23T15:57:16Z	2016-01-12T19:43:46Z	I have working (non-elegant) code working for doing a white/blacklist of mimetypes. Also checks max_file_size parameter!	molgrum
pythonsnake	634	Implement SVG support	programming	in_progress		enhancement	2013-02-12T17:23:40Z	2013-09-24T12:21:55Z	I would like to request support for support for SVG (images)	mrb
rodrigopitanga	743	Avoid crash when loading STL media without Blender in the server	programming	in_progress		defect	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
rodrigopitanga	908	Calculate volume of 3D media	programming	in_progress		enhancement	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
simonft	518	Package MediaGoblin for Debian	programming	in_progress		enhancement	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
tofay	960	Add search functionality	programming	in_progress		enhancement	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
