OSDN Git Service

SauceNAOによる類似画像検索を追加
authorKimura Youichi <kim.upsilon@bucyou.net>
Sat, 5 Sep 2015 11:15:28 +0000 (20:15 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 5 Sep 2015 11:24:12 +0000 (20:24 +0900)
OpenTween/Resources/ChangeLog.txt
OpenTween/TweetThumbnail.Designer.cs
OpenTween/TweetThumbnail.cs
OpenTween/TweetThumbnail.en.resx
OpenTween/TweetThumbnail.resx

index 05183be..feb90e3 100644 (file)
@@ -3,6 +3,8 @@
 ==== Ver 1.2.8-dev(2015/xx/xx)
  * NEW: DMの文字数制限の緩和(上限10,000文字)に対応しました(投稿および表示)
  * NEW: サムネイル画像が複数枚ある場合に、マウスホイールでも画像を切り替えられるようにしました
+ * NEW: サムネイル画像のメニューに「類似画像検索 (SauceNAO)」を追加しました
+  - Google画像検索でヒットしないpixivのイラストからも類似画像を検索できます
  * FIX: 上下キーなどで選択ツイートを移動した直後に左右キーなどによる関連ツイートの移動が正しく動作しない不具合を修正
  * FIX: DM投稿時の「D (スクリーン名)」が文字数のカウントに余分に含まれていた不具合を修正
  * FIX: 絵文字入力時に文字数が1文字多くカウントされていた不具合を修正
index c0679a0..a6d7d4f 100644 (file)
@@ -35,6 +35,7 @@
             this.panelPictureBox = new System.Windows.Forms.Panel();
             this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
             this.searchSimilarImageMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.searchImageSauceNaoMenuItem = new System.Windows.Forms.ToolStripMenuItem();
             this.contextMenuStrip.SuspendLayout();
             this.SuspendLayout();
             // 
@@ -57,7 +58,8 @@
             // 
             resources.ApplyResources(this.contextMenuStrip, "contextMenuStrip");
             this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.searchSimilarImageMenuItem});
+            this.searchSimilarImageMenuItem,
+            this.searchImageSauceNaoMenuItem});
             this.contextMenuStrip.Name = "contextMenuStrip";
             this.toolTip.SetToolTip(this.contextMenuStrip, resources.GetString("contextMenuStrip.ToolTip"));
             this.contextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStrip_Opening);
             this.searchSimilarImageMenuItem.Name = "searchSimilarImageMenuItem";
             this.searchSimilarImageMenuItem.Click += new System.EventHandler(this.searchSimilarImageMenuItem_Click);
             // 
+            // searchImageSauceNaoMenuItem
+            // 
+            resources.ApplyResources(this.searchImageSauceNaoMenuItem, "searchImageSauceNaoMenuItem");
+            this.searchImageSauceNaoMenuItem.Name = "searchImageSauceNaoMenuItem";
+            this.searchImageSauceNaoMenuItem.Click += new System.EventHandler(this.searchImageSauceNaoMenuItem_Click);
+            // 
             // TweetThumbnail
             // 
             resources.ApplyResources(this, "$this");
@@ -88,5 +96,6 @@
         protected internal System.Windows.Forms.Panel panelPictureBox;
         private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
         private System.Windows.Forms.ToolStripMenuItem searchSimilarImageMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem searchImageSauceNaoMenuItem;
     }
 }
index 73fb2ab..0661780 100644 (file)
@@ -114,6 +114,11 @@ namespace OpenTween
             return @"https://www.google.com/searchbyimage?image_url=" + Uri.EscapeDataString(image_uri);
         }
 
+        private string GetImageSearchUriSauceNao(string imageUri)
+        {
+            return @"https://saucenao.com/search.php?url=" + Uri.EscapeDataString(imageUri);
+        }
+
         protected virtual Task<IEnumerable<ThumbnailInfo>> GetThumbailInfoAsync(PostClass post, CancellationToken token)
         {
             return ThumbnailGenerator.GetThumbnailsAsync(post, token);
@@ -239,10 +244,13 @@ namespace OpenTween
             {
                 this.searchSimilarImageMenuItem.Enabled = true;
                 this.searchSimilarImageMenuItem.Tag = searchTargetUri;
+                this.searchImageSauceNaoMenuItem.Enabled = true;
+                this.searchImageSauceNaoMenuItem.Tag = searchTargetUri;
             }
             else
             {
                 this.searchSimilarImageMenuItem.Enabled = false;
+                this.searchImageSauceNaoMenuItem.Enabled = false;
             }
         }
 
@@ -253,6 +261,14 @@ namespace OpenTween
 
             this.ThumbnailImageSearchClick?.Invoke(this, new ThumbnailImageSearchEventArgs(searchUri));
         }
+
+        private void searchImageSauceNaoMenuItem_Click(object sender, EventArgs e)
+        {
+            var searchTargetUri = (string)this.searchImageSauceNaoMenuItem.Tag;
+            var searchUri = this.GetImageSearchUriSauceNao(searchTargetUri);
+
+            this.ThumbnailImageSearchClick?.Invoke(this, new ThumbnailImageSearchEventArgs(searchUri));
+        }
     }
 
     public class ThumbnailDoubleClickEventArgs : EventArgs
index 293aba0..9becb31 100644 (file)
   </data>
   <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="searchSimilarImageMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>203, 22</value>
+    <value>254, 22</value>
   </data>
   <data name="searchSimilarImageMenuItem.Text" xml:space="preserve">
-    <value>Search similar images</value>
+    <value>Search similar images (Google)</value>
+  </data>
+  <data name="searchImageSauceNaoMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>254, 22</value>
+  </data>
+  <data name="searchImageSauceNaoMenuItem.Text" xml:space="preserve">
+    <value>Search similar images (SauceNAO)</value>
   </data>
   <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
-    <value>204, 26</value>
+    <value>255, 48</value>
   </data>
   <data name="contextMenuStrip.ToolTip" xml:space="preserve">
     <value />
index fb891b1..225afbe 100644 (file)
   <data name="scrollBar.ToolTip" xml:space="preserve">
     <value />
   </data>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
+    <value>160, 150</value>
+  </data>
   <data name="&gt;&gt;panelPictureBox.Name" xml:space="preserve">
     <value>panelPictureBox</value>
   </data>
   <data name="&gt;&gt;panelPictureBox.Parent" xml:space="preserve">
     <value>$this</value>
   </data>
-  <data name="&gt;&gt;scrollBar.ZOrder" xml:space="preserve">
-    <value>2</value>
+  <data name="searchImageSauceNaoMenuItem.Text" xml:space="preserve">
+    <value>類似画像を検索 (SauceNAO)</value>
+  </data>
+  <data name="searchSimilarImageMenuItem.Text" xml:space="preserve">
+    <value>類似画像を検索 (Google)</value>
   </data>
   <data name="&gt;&gt;$this.Type" xml:space="preserve">
     <value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   <data name="&gt;&gt;contextMenuStrip.Type" xml:space="preserve">
     <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
   <data name="panelPictureBox.Size" type="System.Drawing.Size, System.Drawing">
     <value>143, 150</value>
   </data>
-  <data name="searchSimilarImageMenuItem.Text" xml:space="preserve">
-    <value>類似画像を検索</value>
+  <data name="&gt;&gt;searchImageSauceNaoMenuItem.Name" xml:space="preserve">
+    <value>searchImageSauceNaoMenuItem</value>
   </data>
   <data name="&gt;&gt;scrollBar.Type" xml:space="preserve">
     <value>System.Windows.Forms.VScrollBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   <data name="panelPictureBox.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Fill</value>
   </data>
-  <data name="$this.Size" type="System.Drawing.Size, System.Drawing">
-    <value>160, 150</value>
+  <data name="&gt;&gt;searchImageSauceNaoMenuItem.Type" xml:space="preserve">
+    <value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </data>
+  <data name="&gt;&gt;scrollBar.ZOrder" xml:space="preserve">
+    <value>2</value>
   </data>
   <data name="panelPictureBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
     <value>2, 2, 2, 2</value>
     <value>0, 0</value>
   </data>
   <data name="contextMenuStrip.Size" type="System.Drawing.Size, System.Drawing">
-    <value>156, 26</value>
+    <value>224, 48</value>
   </data>
   <data name="scrollBar.Location" type="System.Drawing.Point, System.Drawing">
     <value>143, 0</value>
   </data>
   <data name="searchSimilarImageMenuItem.Size" type="System.Drawing.Size, System.Drawing">
-    <value>155, 22</value>
+    <value>223, 22</value>
   </data>
   <data name="scrollBar.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
     <value>Right</value>
   <data name="&gt;&gt;toolTip.Type" xml:space="preserve">
     <value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </data>
+  <data name="searchImageSauceNaoMenuItem.Size" type="System.Drawing.Size, System.Drawing">
+    <value>223, 22</value>
+  </data>
   <data name="scrollBar.Size" type="System.Drawing.Size, System.Drawing">
     <value>17, 150</value>
   </data>