}
}
- public bool is_album_art_request (Soup.Message message) {
- unowned string query = message.get_uri ().query;
-
- if (query == null) {
- return false;
- }
-
- var params = Soup.Form.decode (query);
- var album_art = params.lookup ("albumArt");
-
- return (album_art != null) && bool.parse (album_art);
- }
-
public static ClientHacks create (Message? message)
throws ClientHacksError {
try {
}
if (this.hack != null) {
- if (this.hack.is_album_art_request (this.msg) &&
- this.item is VisualItem) {
- var visual_item = this.item as VisualItem;
-
- if (visual_item.thumbnails.size <= 0) {
- throw new HTTPRequestError.NOT_FOUND ("No Thumbnail " +
- "available for " +
- "item '%s'",
- visual_item.id);
- }
-
- this.thumbnail = visual_item.thumbnails.get (0);
-
- return;
- } else {
- this.hack.apply (this.item);
- }
+ this.hack.apply (item);
}
if (this.uri.thumbnail_index >= 0) {
base (AGENT, message);
this.object_id = CONTAINER_ID;
+ // Rewrite request URI to be a thumbnail request if it matches those
+ // weird XBox thumbnail requests
+ if (message == null) {
+ return;
+ }
+
+ unowned Soup.URI uri = message.get_uri ();
+ unowned string query = uri.query;
+ if (query == null) {
+ return;
+ }
+ var params = Soup.Form.decode (query);
+ var album_art = params.lookup ("albumArt");
+
+ if ((album_art == null) || !bool.parse (album_art)) {
+ return;
+ }
+
+ uri.set_path (uri.get_path () + "/th/0");
}
public void apply_on_device (RootDevice device,
throw new ClientHacksError.NA ("");
}
- public bool is_album_art_request (Message message) {
- return false;
- }
-
public void apply (MediaItem item) {
}
}
TIMEOUT
}
+public errordomain Rygel.ClientHacksError {
+ NA
+}
+
+public class Rygel.ClientHacks {
+ public static ClientHacks create (Message? message) throws Error {
+ throw new ClientHacksError.NA ("");
+ }
+
+ public void apply (MediaItem item) {
+ }
+}
+
public class Rygel.HTTPPostTest : GLib.Object {
protected HTTPServer server;
protected HTTPClient client;