[banshee/amazon] Amazon pane tweaks



commit 485593bc7511f59d1380c2822fa0c6de42477025
Author: Gabriel Burt <gabriel burt gmail com>
Date:   Fri May 8 18:15:16 2009 -0500

    Amazon pane tweaks
---
 .../Banshee.Amazon/Banshee.Amazon.csproj           |    8 ++++----
 .../Banshee.Amazon/Banshee.Amazon/AmazonPane.cs    |    4 ++--
 .../Banshee.Amazon/AmazonPreviewTrackInfo.cs       |    2 +-
 .../Banshee.Amazon/Banshee.Amazon/AmazonUtils.cs   |   14 ++++++++++----
 4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/Extensions/Banshee.Amazon/Banshee.Amazon.csproj b/src/Extensions/Banshee.Amazon/Banshee.Amazon.csproj
index a2ecf49..90a6c7e 100644
--- a/src/Extensions/Banshee.Amazon/Banshee.Amazon.csproj
+++ b/src/Extensions/Banshee.Amazon/Banshee.Amazon.csproj
@@ -28,6 +28,9 @@
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ItemGroup>
     <EmbeddedResource Include="Banshee.Amazon.addin.xml" />
+    <EmbeddedResource Include="Resources\GlobalUI.xml">
+      <LogicalName>GlobalUI.xml</LogicalName>
+    </EmbeddedResource>
   </ItemGroup>
   <ProjectExtensions>
     <MonoDevelop>
@@ -83,7 +86,4 @@
     <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
     <Reference Include="System.Core" />
   </ItemGroup>
-  <ItemGroup>
-    <Resource Include="Resources\GlobalUI.xml" />
-  </ItemGroup>
-</Project>
\ No newline at end of file
+</Project>
diff --git a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPane.cs b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPane.cs
index c811633..a9a5a63 100644
--- a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPane.cs
+++ b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPane.cs
@@ -35,7 +35,7 @@ namespace Banshee.Amazon
         private void OnPlayerEvent (object args)
         {
             TrackInfo track = ServiceManager.PlayerEngine.CurrentTrack;
-            if (track != null) {
+            if (track != null && !(track is AmazonPreviewTrackInfo)) {
                 Banshee.Base.ThreadAssist.SpawnFromMain (delegate {
                     widget.UpdateForTrack (track);
                 });
@@ -161,7 +161,7 @@ namespace Banshee.Amazon
             var play = new Button (new Image (Banshee.Gui.IconThemeUtils.LoadIcon ("media-playback-start", (int)IconSize.Button))) { Relief = ReliefStyle.None };
             play.TooltipText = Catalog.GetString ("Play Preview");
             play.Clicked += (o, a) => {
-                new AmazonPreviewTrackInfo (item).Play ();
+                Banshee.Streaming.RadioTrackInfo.OpenPlay (new AmazonPreviewTrackInfo (item));
             };
 
             var go = new Button (new Image (Stock.JumpTo, IconSize.Button)) { Relief = ReliefStyle.None };
diff --git a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPreviewTrackInfo.cs b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPreviewTrackInfo.cs
index 13c2358..8344131 100644
--- a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPreviewTrackInfo.cs
+++ b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonPreviewTrackInfo.cs
@@ -11,7 +11,7 @@ namespace Banshee.Amazon
     {
         public AMZN.Item Item { get; private set; }
 
-        public AmazonPreviewTrackInfo (AMZN.Item item) : base (new Banshee.Base.SafeUri (AmazonUtils.PreviewPlaylistUrl (item.ASIN)))
+        public AmazonPreviewTrackInfo (AMZN.Item item) : base (new Banshee.Base.SafeUri (AmazonUtils.PreviewPlaylistUrl (item)))
         {
             Item = item;
         }
diff --git a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonUtils.cs b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonUtils.cs
index 883931c..7b1eef4 100644
--- a/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonUtils.cs
+++ b/src/Extensions/Banshee.Amazon/Banshee.Amazon/AmazonUtils.cs
@@ -13,7 +13,7 @@ namespace Banshee.Amazon
     {
         private const string ACCESS_KEY = "1WX2TV6EWH519QW2V482";
         private const string AFFILIATE_TAG = "banshee";
-        private const string PREVIEW_URL_FMT = "http://www.amazon.com/gp/dmusic/media/sample.m3u/ref=dm_sp_smpl?ie=UTF8&catalogItemType=track&ASIN={0}";;
+        private const string PREVIEW_URL_FMT = "http://www.amazon.com/gp/dmusic/media/sample.m3u/ref=dm_sp_smpl?ie=UTF8&catalogItemType={1}&ASIN={0}";;
 
         private const string MP3_ALBUMS_NODE = "324381011";
         private const string MP3_SONGS_NODE =  "324382011";
@@ -23,9 +23,14 @@ namespace Banshee.Amazon
 
         private static AmazonECSQuery service = new AmazonECSQuery (ACCESS_KEY, AFFILIATE_TAG);
 
-        public static string PreviewPlaylistUrl (string asin)
+        public static string PreviewPlaylistUrl (Item item)
         {
-            return String.Format (PREVIEW_URL_FMT, asin);
+            return String.Format (PREVIEW_URL_FMT, item.ASIN, IsAlbum (item) ? "album" : "track");
+        }
+
+        public static bool IsAlbum (Item item)
+        {
+            return item.ItemAttributes.ProductTypeName == "DOWNLOADABLE_MUSIC_ALBUM";
         }
 
         public static IEnumerable<Item> FindItems (string artist, bool mp3, bool returnTracks)
@@ -43,10 +48,11 @@ namespace Banshee.Amazon
 
             // TODO the API now supports RelationshipType = Tracks, RelatedItems response group
             // but the C# API is out of date.
+            request.WithRelationshipType ("Tracks");
 
             request.WithSort ("salesrank");
             //request.WithSort ("relevancerank");
-            request.WithResponseGroup ("Large", "VariationOffers", "Offers", "ItemAttributes", "Tags", "Images", "Reviews", "AlternateVersions", "Tracks", "Variations", "Similarities");
+            request.WithResponseGroup ("Large", "RelatedItems", "PromotionSummary", "VariationOffers", "Offers", "ItemAttributes", "Tags", "Images", "Reviews", "AlternateVersions", "Tracks", "Variations", "Similarities");
             //request.WithResponseGroup ("Offers", "ItemAttributes", "Images", "Reviews", "Tracks", "Variations", "Similarities");
             //request.WithResponseGroup ("Offers", "ItemAttributes", "Images", "Reviews", "Tracks", "Variations");
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]