]> git.mxchange.org Git - quix0rs-gnu-social.git/log
quix0rs-gnu-social.git
9 years agoSensitive-test _is_ done in index.php
Mikael Nordfeldth [Sun, 8 Mar 2015 18:17:01 +0000 (19:17 +0100)]
Sensitive-test _is_ done in index.php

9 years agoSome reply buttons wouldn't work the first time they were clicked.
Mikael Nordfeldth [Sun, 8 Mar 2015 11:54:08 +0000 (12:54 +0100)]
Some reply buttons wouldn't work the first time they were clicked.

9 years agoRepliesAction migrated to extend ManagedAction
Mikael Nordfeldth [Sun, 8 Mar 2015 11:38:15 +0000 (12:38 +0100)]
RepliesAction migrated to extend ManagedAction

9 years agoAll the AJAX calls should be made with $.ajax
Mikael Nordfeldth [Sun, 8 Mar 2015 00:34:40 +0000 (01:34 +0100)]
All the AJAX calls should be made with $.ajax

because we're gonna want to expect application/xml or text/xml back.

There's a weird thing in Firefox where the call on line ~703 makes the
web developer console output "not well formed" which is for the returned
data. It is assumed to be text/xml - which it is - but the doctype says
"html" (because it is first <?xml..?> followed by <!DOCTYPE html ...->

This doesn't cause any malfunction right now, just the output in the
console. I'm not exactly sure how to fix it. Probably remove the DOCTYPE
output for AJAX calls, but I'm not sure that's the best way. Could this
maybe even be a browser/javascript/whatever bug? Because the Content-Type
from the server _is_ right...

9 years agoNeed to run the NoticeFormSetup if forms are prerendered
Mikael Nordfeldth [Sat, 7 Mar 2015 22:42:27 +0000 (23:42 +0100)]
Need to run the NoticeFormSetup if forms are prerendered

9 years agoDon't put submit button in reply field edge-to-edge
Mikael Nordfeldth [Sat, 7 Mar 2015 22:38:03 +0000 (23:38 +0100)]
Don't put submit button in reply field edge-to-edge

9 years agoDon't put reply in a popup, it was undesired for users
Mikael Nordfeldth [Sat, 7 Mar 2015 22:35:41 +0000 (23:35 +0100)]
Don't put reply in a popup, it was undesired for users

Maybe could make that optional or something in the DefaultLayout plugin...

9 years agoEmail settings fix for the DB_DataObject bug for saving value 0
Mikael Nordfeldth [Sat, 7 Mar 2015 20:57:43 +0000 (21:57 +0100)]
Email settings fix for the DB_DataObject bug for saving value 0

9 years agoReply popup works now
Mikael Nordfeldth [Sat, 7 Mar 2015 19:35:05 +0000 (20:35 +0100)]
Reply popup works now

...WHY does javascript let me define the same value twice in the same
definition without warning about it? I hate Javascript. :(

9 years agoChange the title of NewnoticeAction if replying
Mikael Nordfeldth [Sat, 7 Mar 2015 19:34:46 +0000 (20:34 +0100)]
Change the title of NewnoticeAction if replying

9 years agoinput elements outside of label elements
Mikael Nordfeldth [Sat, 7 Mar 2015 19:11:13 +0000 (20:11 +0100)]
input elements outside of label elements

HTML lets us put the input element inside the label and then they
are automatically paired, but this is more explicit and clear imho.

9 years agojquery-ui updated to 1.11.3
Mikael Nordfeldth [Sat, 7 Mar 2015 13:14:19 +0000 (14:14 +0100)]
jquery-ui updated to 1.11.3

Checked all checkboxes on http://jqueryui.com/download/

9 years agojquery infieldlabel.js removed from script list
Mikael Nordfeldth [Sat, 7 Mar 2015 11:32:24 +0000 (12:32 +0100)]
jquery infieldlabel.js removed from script list

9 years agojQuery cookie plugin updated
Mikael Nordfeldth [Sat, 7 Mar 2015 00:00:07 +0000 (01:00 +0100)]
jQuery cookie plugin updated

Source: https://plugins.jquery.com/cookie/

9 years agoJSON in JavaScript library updated
Mikael Nordfeldth [Fri, 6 Mar 2015 23:57:21 +0000 (00:57 +0100)]
JSON in JavaScript library updated

...why we now need a JSON library... _in_ Javascript?!
Source: http://www.json.org/js.html

9 years agojQuery Form Plugin updated
Mikael Nordfeldth [Fri, 6 Mar 2015 23:55:17 +0000 (00:55 +0100)]
jQuery Form Plugin updated

Source: http://malsup.com/jquery/form/

9 years ago"infield labels" should be migrated to HTML5 placeholder
Mikael Nordfeldth [Fri, 6 Mar 2015 23:49:05 +0000 (00:49 +0100)]
"infield labels" should be migrated to HTML5 placeholder

9 years agojQuery v2.1.3 seems to work fine
Mikael Nordfeldth [Fri, 6 Mar 2015 23:48:43 +0000 (00:48 +0100)]
jQuery v2.1.3 seems to work fine

9 years agoStart working a bit more consistently with "notice-options"
Mikael Nordfeldth [Fri, 6 Mar 2015 23:32:26 +0000 (00:32 +0100)]
Start working a bit more consistently with "notice-options"

Let's get the AJAX response and present it to the user with the same
mechanisms for all actions, instead of having a bunch of javascript
for various circumstances (fave, repeat, delete should all be the same
behaviour for example).

9 years agoNo need for NoticeFormMaster anymore
Mikael Nordfeldth [Fri, 6 Mar 2015 23:00:02 +0000 (00:00 +0100)]
No need for NoticeFormMaster anymore

9 years agoChoose whether to prerender the inline reply forms
Mikael Nordfeldth [Fri, 6 Mar 2015 22:52:25 +0000 (23:52 +0100)]
Choose whether to prerender the inline reply forms

The DefaultLayout plugin will come with options to render various parts
of the page by default or not. The expected default behaviour will try
to imitate the original StatusNet/GNU social looks as far as possible.

9 years agoReplies to replies without reloading page now work
Mikael Nordfeldth [Fri, 6 Mar 2015 22:47:03 +0000 (23:47 +0100)]
Replies to replies without reloading page now work

9 years agoHide the threaded-replies gray line.
Mikael Nordfeldth [Fri, 6 Mar 2015 22:46:08 +0000 (23:46 +0100)]
Hide the threaded-replies gray line.

9 years agoMake sure we save 0 as '0' because of DB_DataObject bug
Mikael Nordfeldth [Fri, 6 Mar 2015 22:21:57 +0000 (23:21 +0100)]
Make sure we save 0 as '0' because of DB_DataObject bug

9 years agoReply notice forms are functional again, but not AJAX
Mikael Nordfeldth [Fri, 6 Mar 2015 20:20:46 +0000 (21:20 +0100)]
Reply notice forms are functional again, but not AJAX

9 years agoRemove some more reply-placeholder stuff
Mikael Nordfeldth [Fri, 6 Mar 2015 19:42:50 +0000 (20:42 +0100)]
Remove some more reply-placeholder stuff

9 years agoNo separate placeholder input element for replyforms
Mikael Nordfeldth [Fri, 6 Mar 2015 19:22:01 +0000 (20:22 +0100)]
No separate placeholder input element for replyforms

Also we're moving the rendering of these out into a separate plugin. Not
done yet, some javascript should be moved out as well.

9 years agoMake NoticeForm return the proper placeholder text
Mikael Nordfeldth [Fri, 6 Mar 2015 19:04:09 +0000 (20:04 +0100)]
Make NoticeForm return the proper placeholder text

Also fixes some comments and uncertainties in the beginning of the
class definition.

9 years agoGet the values from the correct object.
Mikael Nordfeldth [Thu, 5 Mar 2015 23:47:18 +0000 (00:47 +0100)]
Get the values from the correct object.

9 years agoValues of 0 would not be updated because of DB_DataObject
Mikael Nordfeldth [Thu, 5 Mar 2015 23:44:00 +0000 (00:44 +0100)]
Values of 0 would not be updated because of DB_DataObject

Upstream bug causing (int)0 to be interpreted as a "null string":
https://pear.php.net/bugs/bug.php?id=20291

9 years agoActually show all images as <img /> tags.
Mikael Nordfeldth [Thu, 5 Mar 2015 10:59:31 +0000 (11:59 +0100)]
Actually show all images as <img /> tags.

Browsers should be secure enough by now for this.

9 years agoSVG files can be used as thumbnails I guess
Mikael Nordfeldth [Thu, 5 Mar 2015 10:59:11 +0000 (11:59 +0100)]
SVG files can be used as thumbnails I guess

9 years agoSome SVG files are "text/html" according to 'file'
Mikael Nordfeldth [Thu, 5 Mar 2015 10:54:30 +0000 (11:54 +0100)]
Some SVG files are "text/html" according to 'file'

9 years agoImageMagick sucks at vector graphics, so only use for rasterization
Mikael Nordfeldth [Thu, 5 Mar 2015 10:53:52 +0000 (11:53 +0100)]
ImageMagick sucks at vector graphics, so only use for rasterization

9 years agoImageMagick plugin can now make thumbnails of SVG files
Mikael Nordfeldth [Wed, 4 Mar 2015 12:50:20 +0000 (13:50 +0100)]
ImageMagick plugin can now make thumbnails of SVG files

9 years agoUsed ->find(true) on wrong object
Mikael Nordfeldth [Wed, 4 Mar 2015 12:46:51 +0000 (13:46 +0100)]
Used ->find(true) on wrong object

9 years agoReset imgPath variable if VideoThumbnails failed
Mikael Nordfeldth [Wed, 4 Mar 2015 12:45:42 +0000 (13:45 +0100)]
Reset imgPath variable if VideoThumbnails failed

9 years agoDocumentation and more understandable code.
Mikael Nordfeldth [Wed, 4 Mar 2015 12:29:18 +0000 (13:29 +0100)]
Documentation and more understandable code.

9 years agoUse getUrl() on File and File_thumbnail instead of ->url
Mikael Nordfeldth [Wed, 4 Mar 2015 12:13:04 +0000 (13:13 +0100)]
Use getUrl() on File and File_thumbnail instead of ->url

9 years agoMove thumbnail algorithm mainly to ImageFile class
Mikael Nordfeldth [Wed, 4 Mar 2015 12:12:42 +0000 (13:12 +0100)]
Move thumbnail algorithm mainly to ImageFile class

9 years agoFree ImageMagick object from memory when done with it
Mikael Nordfeldth [Wed, 4 Mar 2015 11:18:44 +0000 (12:18 +0100)]
Free ImageMagick object from memory when done with it

9 years agoImageMagickPlugin refactored so we can more easily add new formats
Mikael Nordfeldth [Wed, 4 Mar 2015 11:06:21 +0000 (12:06 +0100)]
ImageMagickPlugin refactored so we can more easily add new formats

9 years agoSubscription_queue::start does not mean Subscription exists
Mikael Nordfeldth [Wed, 4 Mar 2015 10:49:54 +0000 (11:49 +0100)]
Subscription_queue::start does not mean Subscription exists

9 years agoSubscription::ensureStart skips AlreadyFulfilledException
Mikael Nordfeldth [Wed, 4 Mar 2015 10:38:04 +0000 (11:38 +0100)]
Subscription::ensureStart skips AlreadyFulfilledException

Sometimes we just want to accept the user's wrong, but when it comes
to remote APIs etc. we probably want to let the client know it has
done something already (in this case multiple identical subscription
requests - which might indicate to it that it should refresh the sub
lists or something).

9 years agoFillImageFileMetadata event documented
Mikael Nordfeldth [Mon, 2 Mar 2015 19:37:59 +0000 (20:37 +0100)]
FillImageFileMetadata event documented

9 years agoBug tracker link updated.
Mikael Nordfeldth [Sun, 1 Mar 2015 15:48:01 +0000 (16:48 +0100)]
Bug tracker link updated.

9 years agoBlog depended on TinyMCE which was unmaintained
Mikael Nordfeldth [Sun, 1 Mar 2015 13:32:48 +0000 (14:32 +0100)]
Blog depended on TinyMCE which was unmaintained

9 years agoAahhh, gotta run php -l before pushing stuff!!!
Mikael Nordfeldth [Sun, 1 Mar 2015 11:47:48 +0000 (12:47 +0100)]
Aahhh, gotta run php -l before pushing stuff!!!

9 years agoForgot to make syntax edits on last commit.
Mikael Nordfeldth [Sun, 1 Mar 2015 11:45:58 +0000 (12:45 +0100)]
Forgot to make syntax edits on last commit.

9 years agoUser class throws exception on register failure
Mikael Nordfeldth [Sun, 1 Mar 2015 11:36:19 +0000 (12:36 +0100)]
User class throws exception on register failure

9 years agoAllow changing nick on EmailRegistration
Mikael Nordfeldth [Sun, 1 Mar 2015 11:31:52 +0000 (12:31 +0100)]
Allow changing nick on EmailRegistration

Nothing said that the EmailRegistration plugin was meant to restrict
the nickname to the local part of the email address. Let users change
it before they actually register the user.

9 years agoDon't log every included config file
Mikael Nordfeldth [Sat, 28 Feb 2015 12:04:17 +0000 (13:04 +0100)]
Don't log every included config file

but let us retrieve the list by running GNUsocial::configFiles()

9 years agoAvatar table url field now 'text', maybe use filename as unique key?
Mikael Nordfeldth [Sat, 28 Feb 2015 11:56:42 +0000 (12:56 +0100)]
Avatar table url field now 'text', maybe use filename as unique key?

9 years agoINSTALL file overhaul, mostly done.
Mikael Nordfeldth [Fri, 27 Feb 2015 15:06:05 +0000 (16:06 +0100)]
INSTALL file overhaul, mostly done.

9 years agohtaccess.sample updating
Mikael Nordfeldth [Fri, 27 Feb 2015 14:42:45 +0000 (15:42 +0100)]
htaccess.sample updating

9 years agossh key based easy upgrade method documentation
Mikael Nordfeldth [Fri, 27 Feb 2015 14:07:24 +0000 (15:07 +0100)]
ssh key based easy upgrade method documentation

9 years agoBetter UPGRADE documentation for GS->GS upgrade
Mikael Nordfeldth [Fri, 27 Feb 2015 14:03:07 +0000 (15:03 +0100)]
Better UPGRADE documentation for GS->GS upgrade

9 years agoStatusNet 1.1.x to GNU social 1.2.x instructions updated
Mikael Nordfeldth [Fri, 27 Feb 2015 13:47:54 +0000 (14:47 +0100)]
StatusNet 1.1.x to GNU social 1.2.x instructions updated

9 years agoUPGRADE file had incorrect commands
Mikael Nordfeldth [Fri, 27 Feb 2015 13:12:01 +0000 (14:12 +0100)]
UPGRADE file had incorrect commands

9 years agoStatusNet to GNU social renaming in minor places
Mikael Nordfeldth [Fri, 27 Feb 2015 11:55:08 +0000 (12:55 +0100)]
StatusNet to GNU social renaming in minor places

9 years agoStatusNet class renamed GNUsocial
Mikael Nordfeldth [Fri, 27 Feb 2015 11:44:15 +0000 (12:44 +0100)]
StatusNet class renamed GNUsocial

also added backward compatible StatusNet class for the two calls I know
third party plugins use, isHTTPS and getActivePlugins

9 years agoStart and EndActionExecute added/fixed/documented
Mikael Nordfeldth [Fri, 27 Feb 2015 11:11:43 +0000 (12:11 +0100)]
Start and EndActionExecute added/fixed/documented

9 years ago1.2.x branch started (utf8mb4 support is reason enough)
Mikael Nordfeldth [Fri, 27 Feb 2015 09:09:57 +0000 (10:09 +0100)]
1.2.x branch started (utf8mb4 support is reason enough)

9 years agoChange branch to 1.2.x since we're utf8mb4 now
Mikael Nordfeldth [Fri, 27 Feb 2015 09:04:29 +0000 (10:04 +0100)]
Change branch to 1.2.x since we're utf8mb4 now

9 years agoMerge branch 'master' into nightly
Mikael Nordfeldth [Fri, 27 Feb 2015 09:01:55 +0000 (10:01 +0100)]
Merge branch 'master' into nightly

Conflicts:
lib/apiaction.php

9 years agoI hereby dub thee 1.1.3 - The Spanish Invasion
Mikael Nordfeldth [Fri, 27 Feb 2015 08:58:38 +0000 (09:58 +0100)]
I hereby dub thee 1.1.3 - The Spanish Invasion

9 years agoPass Profile to asAtomEntry
Mikael Nordfeldth [Fri, 27 Feb 2015 08:57:49 +0000 (09:57 +0100)]
Pass Profile to asAtomEntry

9 years agophp5-intl is recommended but not required
Mikael Nordfeldth [Thu, 26 Feb 2015 21:58:36 +0000 (22:58 +0100)]
php5-intl is recommended but not required

9 years agoNormalize username on AuthCrypt login
Mikael Nordfeldth [Wed, 25 Feb 2015 23:45:17 +0000 (00:45 +0100)]
Normalize username on AuthCrypt login

Because users login with mixed casing and whatnot.

9 years agoAttachment list items have more sane margins around them
Mikael Nordfeldth [Wed, 25 Feb 2015 23:12:34 +0000 (00:12 +0100)]
Attachment list items have more sane margins around them

9 years agoNotice character count now adapts to resized textbox
Mikael Nordfeldth [Wed, 25 Feb 2015 15:40:59 +0000 (16:40 +0100)]
Notice character count now adapts to resized textbox

9 years ago501 Not Implemented on timelines for remote users.
Mikael Nordfeldth [Wed, 25 Feb 2015 15:31:02 +0000 (16:31 +0100)]
501 Not Implemented on timelines for remote users.

9 years agoNoticeOptions above NoticeAttachments
Mikael Nordfeldth [Wed, 25 Feb 2015 15:22:59 +0000 (16:22 +0100)]
NoticeOptions above NoticeAttachments

9 years agoRemoving some plugins that were moved to plugins-unmaintained
Mikael Nordfeldth [Wed, 25 Feb 2015 14:47:14 +0000 (15:47 +0100)]
Removing some plugins that were moved to plugins-unmaintained

See https://gitorious.org/social/plugins-unmaintained/

9 years agoDocumentation + filename uniqueness in File class
Mikael Nordfeldth [Wed, 25 Feb 2015 14:13:47 +0000 (15:13 +0100)]
Documentation + filename uniqueness in File class

9 years agoMerge commit 'refs/merge-requests/55' of https://gitorious.org/social/mainline into...
Mikael Nordfeldth [Wed, 25 Feb 2015 11:59:19 +0000 (12:59 +0100)]
Merge commit 'refs/merge-requests/55' of https://gitorious.org/social/mainline into merge-requests/55

9 years agoRemoved Lato font from themes where it was unnecessary
Mikael Nordfeldth [Wed, 25 Feb 2015 11:56:41 +0000 (12:56 +0100)]
Removed Lato font from themes where it was unnecessary

9 years agoMerge commit 'refs/merge-requests/51' of https://gitorious.org/social/mainline into...
Mikael Nordfeldth [Wed, 25 Feb 2015 11:52:35 +0000 (12:52 +0100)]
Merge commit 'refs/merge-requests/51' of https://gitorious.org/social/mainline into merge-requests/51

9 years agotrailing whitespace
Mikael Nordfeldth [Wed, 25 Feb 2015 11:50:56 +0000 (12:50 +0100)]
trailing whitespace

9 years agoMerge commit 'refs/merge-requests/49' of https://gitorious.org/social/mainline into...
Mikael Nordfeldth [Wed, 25 Feb 2015 11:49:58 +0000 (12:49 +0100)]
Merge commit 'refs/merge-requests/49' of https://gitorious.org/social/mainline into merge-requests/49

9 years agoHTML5 media <source> tags are short tags
Mikael Nordfeldth [Wed, 25 Feb 2015 11:49:15 +0000 (12:49 +0100)]
HTML5 media <source> tags are short tags

9 years agoavconv required -f image2 not -f mjpeg at least on my server
Mikael Nordfeldth [Wed, 25 Feb 2015 00:41:34 +0000 (01:41 +0100)]
avconv required -f image2 not -f mjpeg at least on my server

9 years agoOnly local files to be passed through VideoThumbnails
Mikael Nordfeldth [Wed, 25 Feb 2015 00:37:57 +0000 (01:37 +0100)]
Only local files to be passed through VideoThumbnails

9 years agoVideoThumbnails changed to use 'exec' call to avconv
Mikael Nordfeldth [Wed, 25 Feb 2015 00:36:14 +0000 (01:36 +0100)]
VideoThumbnails changed to use 'exec' call to avconv

9 years agoSave thumbnails with proper extension
Mikael Nordfeldth [Wed, 25 Feb 2015 00:34:00 +0000 (01:34 +0100)]
Save thumbnails with proper extension

This might cause double extensions, but that's ok since the filename
is stored in the database. We might want to look at it later though.

9 years agomimetype added to ImageFile
Mikael Nordfeldth [Wed, 25 Feb 2015 00:33:32 +0000 (01:33 +0100)]
mimetype added to ImageFile

9 years agoImageFile constructor changed to align with existing code
Mikael Nordfeldth [Wed, 25 Feb 2015 00:31:44 +0000 (01:31 +0100)]
ImageFile constructor changed to align with existing code

Noone passed type, width or height to new ImageFile(...) and
in all instances, both parameters were set (though $id is null on occasion).

9 years agoThrow more explicit exception in ImageFile
Mikael Nordfeldth [Wed, 25 Feb 2015 00:14:27 +0000 (01:14 +0100)]
Throw more explicit exception in ImageFile

9 years agoHide posts from users with private_stream in scoping streams
Mikael Nordfeldth [Tue, 24 Feb 2015 21:59:58 +0000 (22:59 +0100)]
Hide posts from users with private_stream in scoping streams

For example the public timeline would show notices from a user with
private_stream configured. (previously it would only hide _new_ notices
by this user as they would be the only ones with notice scoping set).

9 years agoRemoving whitespace and creating an early-return in inScope
Mikael Nordfeldth [Tue, 24 Feb 2015 21:44:43 +0000 (22:44 +0100)]
Removing whitespace and creating an early-return in inScope

9 years agoadded DocNav EVENT
buttle [Tue, 24 Feb 2015 20:51:31 +0000 (21:51 +0100)]
added DocNav EVENT

Event to overide DocNav
two small css changes to indent notice footer correctly.

9 years agoDon't store duplicates of files.
Mikael Nordfeldth [Tue, 24 Feb 2015 20:11:25 +0000 (21:11 +0100)]
Don't store duplicates of files.

If a new file is uploaded, it will be matched with a previously uploaded
file so we don't have to store duplicates. SHA256 is random enough and
also unlikely enough to cause collisions.

9 years agoScript to delete file table entries which have disappeared locally
Mikael Nordfeldth [Tue, 24 Feb 2015 18:29:28 +0000 (19:29 +0100)]
Script to delete file table entries which have disappeared locally

9 years agoRSSCloud URL field too long for utf8mb4
Mikael Nordfeldth [Sat, 21 Feb 2015 15:43:21 +0000 (16:43 +0100)]
RSSCloud URL field too long for utf8mb4

Should be the last one. If any URLs are longer than 191 chars, it might
require more manual interaction. Any instance with problems running
scripts/upgrade.php will get special treatment, help and a lollipop.

9 years agoensureFeedURL will return Ostatus_profile early if already stored
Mikael Nordfeldth [Fri, 20 Feb 2015 13:47:12 +0000 (14:47 +0100)]
ensureFeedURL will return Ostatus_profile early if already stored

9 years agoDefault install to site profile community
Mikael Nordfeldth [Fri, 20 Feb 2015 00:00:28 +0000 (01:00 +0100)]
Default install to site profile community

9 years agoEmoji support through utf8mb4 seems to be done!
Mikael Nordfeldth [Thu, 19 Feb 2015 21:13:42 +0000 (22:13 +0100)]
Emoji support through utf8mb4 seems to be done!

scripts/upgrade.php will take a _long_ time though! But it's worth it.

9 years agoHad to avoid using indexes in the migration phase
Mikael Nordfeldth [Thu, 19 Feb 2015 21:06:43 +0000 (22:06 +0100)]
Had to avoid using indexes in the migration phase

File and File_redirection still had their indexes in the temporary migration table definition.

9 years agoRemove common_debug call that slipped by
Mikael Nordfeldth [Thu, 19 Feb 2015 20:26:55 +0000 (21:26 +0100)]
Remove common_debug call that slipped by

9 years agounique keys and indexes must be NOT NULL or MySQL fucks up
Mikael Nordfeldth [Thu, 19 Feb 2015 20:21:39 +0000 (21:21 +0100)]
unique keys and indexes must be NOT NULL or MySQL fucks up

If this merge throws exception on scripts/upgrade.php and you recently
tried a nightly (i.e. during 2015-02-19) then just go back a commit or two
and try again.

Or delete the duplicate entries. Find the entries like this:

SELECT COUNT(*), urlhash FROM file_redirection
    GROUP BY urlhash
    HAVING COUNT(*) > 1;

then for each urlhash (or come up with a smart SQL query) do:
DELETE FROM file_redirection WHERE urlhash='hashfrompreviousquery' LIMIT 1;

You'll have to remove duplicates more than once if you have >2 identical
urlhash entries. LIMIT -1 might do that for you. I'm not sure.