Using a relative path required it to be run from the top-level
directory; we already do voodoo to figure out the correct prefix, so we
should use that.
Newer versions of the PCRE library changed behaviour so we can't
replace invalid characters by listing them, since it now requires
that the characters in a pattern are valid Unicode characters. Use an
inverted character class instead.
Might work.
According to the changelog, getID3 1.7.9 standardised on part_of_a_set
as the key for this info (pulled from TPOS or TPA, depending on the
minor version of ID3v2); we were looking for 'pos', which is wrong.
Previously we would say things like "1 seconds" and "1 hours". Using
the magic of ngettext and sprintf we can get rid of the static
concatenation order and become theoretically more translatable as well
as more correct in English.
Also changed the logic a bit, since the old looping method was
unfriendly to my brain.
Initial tag is case sensitive; we were emitting [Playlist] but some
players don't accept that. There is unfortunately no real standard to
check, but this does match what Winamp (ack, pthbbt) does.
Picard is putting multiple MBIDs in the tags now that MusicBrainz' new
schema is live. The easiest way to deal with this is to store all of
them as an aggregate value and match against that.
This would result in extra slashes, e.g.
'/\/([0-9]+?)\s\\\-\s(.+?)\..+$/' instead of
'/\/([0-9]+?)\s\-\s(.+?)\..+$/'
There are some unrelated cosmetic changes as well.
It seems that Chrome believes that commas end header values (it's
probably correct in this belief). Quoting the value should avoid this,
and potentially other issues.
This can, for instance, be used to allow LDAP authenticated users to use the
API without manually setting a password, as long as they've logged in using
the web interface at least once.
We were manually loading the vauth class (apparently to work around a
bug in Synology's PHP) but not calling vauth::_auto_init(), so the
default session handler was used. This normally does session locking,
so bad things happened.
No joins were necessary for what it was doing; cartesian joins even less
so. Limiting display to two duplicates was bogus. Ordering by the
number of duplicates in ascending order was an odd choice.
Consistently use $this instead of $catalog or (no longer set) local
variables that duplicated class variables in the templates, minor
quoting cosmetics.
Squashed commit of the following:
commit 4cba31ed7a607cf955b39131ca598d4f8b7553b6
Author: Elias Probst <mail@eliasprobst.eu>
Date: Tue Dec 7 23:08:47 2010 +0100
Improved LDAP group matching regex to make sure, the whole string is matched.
commit 1a056e6fdac3c3c3f141283dad25a407a4c897a1
Author: Elias Probst <mail@eliasprobst.eu>
Date: Tue Dec 7 23:08:02 2010 +0100
Implementation for the still missing 'ldap_require_group' feature. Including changes suggested in http://ampache.org/bugs/task/150#comment103