<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>cropperplugins Work Item Rss Feed</title><link>http://www.codeplex.com/cropperplugins/WorkItem/List.aspx</link><description>cropperplugins Work Item Rss Description</description><item><title>Created Issue: GIF recordings fail [17705]</title><link>http://cropperplugins.codeplex.com/workitem/17705</link><description>I get this &amp;#40;Windows 7, multi-monitor configuration&amp;#41;&amp;#58;&lt;br /&gt;&lt;br /&gt;See the end of this message for details on invoking &lt;br /&gt;just-in-time &amp;#40;JIT&amp;#41; debugging instead of this dialog box.&lt;br /&gt;&lt;br /&gt;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42; Exception Text &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&lt;br /&gt;System.ArgumentException&amp;#58; Parameter is not valid.&lt;br /&gt;   at System.Drawing.Bitmap..ctor&amp;#40;Int32 width, Int32 height, PixelFormat format&amp;#41;&lt;br /&gt;   at System.Drawing.Bitmap..ctor&amp;#40;Int32 width, Int32 height&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.Core.NativeMethods.GetDesktopBitmap&amp;#40;Int32 x, Int32 y, Int32 width, Int32 height&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.Core.NativeMethods.GetDesktopBitmap&amp;#40;Rectangle rectangle&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.Core.ImageCapture.Fusion8.Cropper.Extensibility.IPersistableOutput.FetchCapture&amp;#40;ImageHandler imageHandler&amp;#41;&lt;br /&gt;   at CropperPlugins.AnimatedGifFormat._recordTimer_Tick&amp;#40;Object sender, EventArgs e&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Timer.OnTick&amp;#40;EventArgs e&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Timer.TimerNativeWindow.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.NativeWindow.Callback&amp;#40;IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42; Loaded Assemblies &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&lt;br /&gt;mscorlib&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5448 &amp;#40;Win7SP1GDR.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;Microsoft.NET&amp;#47;Framework&amp;#47;v2.0.50727&amp;#47;mscorlib.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;Cropper&lt;br /&gt;    Assembly Version&amp;#58; 1.9.4.89&lt;br /&gt;    Win32 Version&amp;#58; 1.9.4.89&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;D&amp;#58;&amp;#47;Program&amp;#37;20Files&amp;#37;20&amp;#40;x86&amp;#41;&amp;#47;Fusion8Design&amp;#47;Cropper&amp;#47;Cropper.exe&lt;br /&gt;----------------------------------------&lt;br /&gt;Cropper.Core&lt;br /&gt;    Assembly Version&amp;#58; 1.9.4.89&lt;br /&gt;    Win32 Version&amp;#58; 1.9.4.89&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;D&amp;#58;&amp;#47;Program&amp;#37;20Files&amp;#37;20&amp;#40;x86&amp;#41;&amp;#47;Fusion8Design&amp;#47;Cropper&amp;#47;Cropper.Core.DLL&lt;br /&gt;----------------------------------------&lt;br /&gt;System.Drawing&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5420 &amp;#40;Win7SP1.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System.Drawing&amp;#47;2.0.0.0__b03f5f7f11d50a3a&amp;#47;System.Drawing.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;System&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5453 &amp;#40;Win7SP1GDR.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System&amp;#47;2.0.0.0__b77a5c561934e089&amp;#47;System.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;System.Windows.Forms&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5446 &amp;#40;Win7SP1GDR.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System.Windows.Forms&amp;#47;2.0.0.0__b77a5c561934e089&amp;#47;System.Windows.Forms.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;Skybound.VisualStyles&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.1.1.0&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;D&amp;#58;&amp;#47;Program&amp;#37;20Files&amp;#37;20&amp;#40;x86&amp;#41;&amp;#47;Fusion8Design&amp;#47;Cropper&amp;#47;Skybound.VisualStyles.DLL&lt;br /&gt;----------------------------------------&lt;br /&gt;System.Xml&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5420 &amp;#40;Win7SP1.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System.Xml&amp;#47;2.0.0.0__b77a5c561934e089&amp;#47;System.Xml.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;Cropper.Extensibility&lt;br /&gt;    Assembly Version&amp;#58; 1.9.4.89&lt;br /&gt;    Win32 Version&amp;#58; 1.9.4.89&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;D&amp;#58;&amp;#47;Program&amp;#37;20Files&amp;#37;20&amp;#40;x86&amp;#41;&amp;#47;Fusion8Design&amp;#47;Cropper&amp;#47;Cropper.Extensibility.DLL&lt;br /&gt;----------------------------------------&lt;br /&gt;Cropper.AnimatedGif&lt;br /&gt;    Assembly Version&amp;#58; 1.2.3647.22119&lt;br /&gt;    Win32 Version&amp;#58; 1.2.3647.22119&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;D&amp;#58;&amp;#47;Program&amp;#37;20Files&amp;#37;20&amp;#40;x86&amp;#41;&amp;#47;Fusion8Design&amp;#47;Cropper&amp;#47;plugins&amp;#47;Cropper.AnimatedGif.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;System.Configuration&lt;br /&gt;    Assembly Version&amp;#58; 2.0.0.0&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5420 &amp;#40;Win7SP1.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System.Configuration&amp;#47;2.0.0.0__b03f5f7f11d50a3a&amp;#47;System.Configuration.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;c45vnr2n&lt;br /&gt;    Assembly Version&amp;#58; 1.9.4.89&lt;br /&gt;    Win32 Version&amp;#58; 2.0.50727.5453 &amp;#40;Win7SP1GDR.050727-5400&amp;#41;&lt;br /&gt;    CodeBase&amp;#58; file&amp;#58;&amp;#47;&amp;#47;&amp;#47;C&amp;#58;&amp;#47;Windows&amp;#47;assembly&amp;#47;GAC_MSIL&amp;#47;System&amp;#47;2.0.0.0__b77a5c561934e089&amp;#47;System.dll&lt;br /&gt;----------------------------------------&lt;br /&gt;&lt;br /&gt;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42; JIT Debugging &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&lt;br /&gt;To enable just-in-time &amp;#40;JIT&amp;#41; debugging, the .config file for this&lt;br /&gt;application or computer &amp;#40;machine.config&amp;#41; must have the&lt;br /&gt;jitDebugging value set in the system.windows.forms section.&lt;br /&gt;The application must also be compiled with debugging&lt;br /&gt;enabled.&lt;br /&gt;&lt;br /&gt;For example&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#60;configuration&amp;#62;&lt;br /&gt;    &amp;#60;system.windows.forms jitDebugging&amp;#61;&amp;#34;true&amp;#34; &amp;#47;&amp;#62;&lt;br /&gt;&amp;#60;&amp;#47;configuration&amp;#62;&lt;br /&gt;&lt;br /&gt;When JIT debugging is enabled, any unhandled exception&lt;br /&gt;will be sent to the JIT debugger registered on the computer&lt;br /&gt;rather than be handled by this dialog box.&lt;br /&gt;</description><author>kentcb</author><pubDate>Sat, 24 Mar 2012 17:56:42 GMT</pubDate><guid isPermaLink="false">Created Issue: GIF recordings fail [17705] 20120324055642P</guid></item><item><title>Closed Issue: Update GetSignatureBase in OAuth package to handle non-oob scenarios [15756]</title><link>http://cropperplugins.codeplex.com/workitem/15756</link><description>you&amp;#39;ll want to make a small change in your GetSignatureBase method to support non &amp;#34;oob&amp;#34; solutions. &lt;br /&gt;&lt;br /&gt;For non &amp;#34;oob&amp;#34;, you need to URL encode the callback, so you&amp;#39;ll want to add something like this when you&amp;#39;re iterating through this._params&amp;#58; &lt;br /&gt;&lt;br /&gt;if &amp;#40;p1.Key &amp;#61;&amp;#61; &amp;#34;callback&amp;#34;&amp;#41; &amp;#123;&lt;br /&gt;   p.Add&amp;#40;&amp;#34;oauth_&amp;#34; &amp;#43; p1.Key, UrlEncode&amp;#40;p1.Value&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;   continue&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;Comments: &lt;p&gt;This is fixed in the current version of OAuth.cs&lt;/p&gt;</description><author>Cheeso</author><pubDate>Wed, 09 Nov 2011 15:43:54 GMT</pubDate><guid isPermaLink="false">Closed Issue: Update GetSignatureBase in OAuth package to handle non-oob scenarios [15756] 20111109034354P</guid></item><item><title>Closed Issue: Create new plugin Twitter upload media function, use OAuth lib [16715]</title><link>http://cropperplugins.codeplex.com/workitem/16715</link><description>Twitter now has an API for uploading images direct to twitter&amp;#58; https&amp;#58;&amp;#47;&amp;#47;dev.twitter.com&amp;#47;docs&amp;#47;api&amp;#47;1&amp;#47;post&amp;#47;statuses&amp;#47;update_with_media&lt;br /&gt;&lt;br /&gt;Something you might want to consider using from the cropper plugins&amp;#63;&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve got it going with the OAuth lib.  I&amp;#39;m using the Upload.PostFile from&lt;br /&gt;&lt;br /&gt;Salient as the System.Net.WebClient won&amp;#39;t allow me to name the file&amp;#39;s form variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;string url &amp;#61; &amp;#34;https&amp;#58;&amp;#47;&amp;#47;upload.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update_with_media.xml&amp;#63;&amp;#34;&amp;#38;&amp;#35;43&amp;#59;&lt;br /&gt;    &amp;#34;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter &amp;#38;&amp;#35;31169&amp;#59;&amp;#33;&amp;#33;&amp;#34;&lt;br /&gt;    &amp;#41;&amp;#59;&lt;br /&gt;string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;NameValueCollection headers &amp;#61; new NameValueCollection&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;WebResponse fileResponse &amp;#61; Upload.PostFile&amp;#40;new Uri&amp;#40;url&amp;#41;&lt;br /&gt;    , new NameValueCollection&amp;#40;&amp;#41;&lt;br /&gt;    , &amp;#64;&amp;#34;C&amp;#58;&amp;#92;Users&amp;#92;Russ&amp;#92;4063b622-4716-4c19-9050-c7cf8f9f7ec2.jpg&amp;#34;&lt;br /&gt;    , &amp;#34;img&amp;#47;jpeg&amp;#34;&lt;br /&gt;    , &amp;#34;media&amp;#91;&amp;#93;&amp;#34;&lt;br /&gt;    , null&lt;br /&gt;    , headers&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stream s &amp;#61; fileResponse.GetResponseStream&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;using &amp;#40;StreamReader sr &amp;#61; new StreamReader&amp;#40;s&amp;#41;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    string res &amp;#61; sr.ReadToEnd&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.Write&amp;#40;res&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;Comments: &lt;p&gt;implemented in Changeset &amp;#35;81887 . Will be in the next binary version of the plugins projec t- v1.3.10.  &lt;/p&gt;</description><author>Cheeso</author><pubDate>Sat, 22 Oct 2011 18:38:08 GMT</pubDate><guid isPermaLink="false">Closed Issue: Create new plugin Twitter upload media function, use OAuth lib [16715] 20111022063808P</guid></item><item><title>Closed Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917]</title><link>http://cropperplugins.codeplex.com/workitem/15917</link><description>After giving SendtoTwitPic authorization via Twitter through the popup window, I get the above error every time I try to use the plugin.  Checking in the Cropper options, I notice that the Access Token and Access Secret  fields are empty and the Clear button is disabled.  The only way to get prompted for the authorization again is to delete the SendtoTwitPic line in cropper.config.  I&amp;#39;m thinking Authorization from Twitter must have changed, because I now don&amp;#39;t see SendToTwitPic listed in approved Applicaitons on Twitter and Cropper gave me no way to input the PIN that Twitter provided via the authorization process that SendToTwitPic initiated.&lt;br /&gt;Comments: &lt;p&gt;Fixed in Changeset &amp;#35;81885 .  This fix will be available in the next  binary release, v1.3.10.  &lt;/p&gt;</description><author>Cheeso</author><pubDate>Sat, 22 Oct 2011 17:20:39 GMT</pubDate><guid isPermaLink="false">Closed Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917] 20111022052039P</guid></item><item><title>Commented Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917]</title><link>http://cropperplugins.codeplex.com/workitem/15917</link><description>After giving SendtoTwitPic authorization via Twitter through the popup window, I get the above error every time I try to use the plugin.  Checking in the Cropper options, I notice that the Access Token and Access Secret  fields are empty and the Clear button is disabled.  The only way to get prompted for the authorization again is to delete the SendtoTwitPic line in cropper.config.  I&amp;#39;m thinking Authorization from Twitter must have changed, because I now don&amp;#39;t see SendToTwitPic listed in approved Applicaitons on Twitter and Cropper gave me no way to input the PIN that Twitter provided via the authorization process that SendToTwitPic initiated.&lt;br /&gt;Comments: ** Comment from web user: Cheeso ** &lt;p&gt;The suspiscion you raised is correct - the authorization check at Twitter changed. The plugin did HTML screen scraping and Twitter changed its HTML markup, so the automated part broke.   &lt;/p&gt;&lt;p&gt;&lt;/p&gt;</description><author>Cheeso</author><pubDate>Sat, 22 Oct 2011 15:29:29 GMT</pubDate><guid isPermaLink="false">Commented Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917] 20111022032929P</guid></item><item><title>Commented Issue: Create new plugin Twitter upload media function, use OAuth lib [16715]</title><link>http://cropperplugins.codeplex.com/workitem/16715</link><description>Twitter now has an API for uploading images direct to twitter&amp;#58; https&amp;#58;&amp;#47;&amp;#47;dev.twitter.com&amp;#47;docs&amp;#47;api&amp;#47;1&amp;#47;post&amp;#47;statuses&amp;#47;update_with_media&lt;br /&gt;&lt;br /&gt;Something you might want to consider using from the cropper plugins&amp;#63;&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve got it going with the OAuth lib.  I&amp;#39;m using the Upload.PostFile from&lt;br /&gt;&lt;br /&gt;Salient as the System.Net.WebClient won&amp;#39;t allow me to name the file&amp;#39;s form variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;string url &amp;#61; &amp;#34;https&amp;#58;&amp;#47;&amp;#47;upload.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update_with_media.xml&amp;#63;&amp;#34;&amp;#38;&amp;#35;43&amp;#59;&lt;br /&gt;    &amp;#34;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter &amp;#38;&amp;#35;31169&amp;#59;&amp;#33;&amp;#33;&amp;#34;&lt;br /&gt;    &amp;#41;&amp;#59;&lt;br /&gt;string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;NameValueCollection headers &amp;#61; new NameValueCollection&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;WebResponse fileResponse &amp;#61; Upload.PostFile&amp;#40;new Uri&amp;#40;url&amp;#41;&lt;br /&gt;    , new NameValueCollection&amp;#40;&amp;#41;&lt;br /&gt;    , &amp;#64;&amp;#34;C&amp;#58;&amp;#92;Users&amp;#92;Russ&amp;#92;4063b622-4716-4c19-9050-c7cf8f9f7ec2.jpg&amp;#34;&lt;br /&gt;    , &amp;#34;img&amp;#47;jpeg&amp;#34;&lt;br /&gt;    , &amp;#34;media&amp;#91;&amp;#93;&amp;#34;&lt;br /&gt;    , null&lt;br /&gt;    , headers&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stream s &amp;#61; fileResponse.GetResponseStream&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;using &amp;#40;StreamReader sr &amp;#61; new StreamReader&amp;#40;s&amp;#41;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    string res &amp;#61; sr.ReadToEnd&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.Write&amp;#40;res&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;Comments: ** Comment from web user: Cheeso ** &lt;p&gt;Hmm, ok, it shouldn&amp;#39;t be too much trouble. &lt;/p&gt;&lt;p&gt;The suspiscion you raised in the bug on Send-To-Twitpic was correct - the authorization check at Twitter changed. The plugin did HTML screen scraping and Twitter changed its HTML markup, so the automated part broke.   &lt;/p&gt;&lt;p&gt;After I do the work, Both will function properly again, though I don&amp;#39;t know why anyone would want the Send-To-Twitpic plugin if a Send-to-Twitter is available.&lt;br /&gt;&lt;/p&gt;</description><author>Cheeso</author><pubDate>Sat, 22 Oct 2011 15:29:12 GMT</pubDate><guid isPermaLink="false">Commented Issue: Create new plugin Twitter upload media function, use OAuth lib [16715] 20111022032912P</guid></item><item><title>Commented Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917]</title><link>http://cropperplugins.codeplex.com/workitem/15917</link><description>After giving SendtoTwitPic authorization via Twitter through the popup window, I get the above error every time I try to use the plugin.  Checking in the Cropper options, I notice that the Access Token and Access Secret  fields are empty and the Clear button is disabled.  The only way to get prompted for the authorization again is to delete the SendtoTwitPic line in cropper.config.  I&amp;#39;m thinking Authorization from Twitter must have changed, because I now don&amp;#39;t see SendToTwitPic listed in approved Applicaitons on Twitter and Cropper gave me no way to input the PIN that Twitter provided via the authorization process that SendToTwitPic initiated.&lt;br /&gt;Comments: ** Comment from web user: Cheeso ** &lt;p&gt;Yep - I saw this myself. Will get it fixed.&lt;/p&gt;</description><author>Cheeso</author><pubDate>Sat, 22 Oct 2011 15:25:52 GMT</pubDate><guid isPermaLink="false">Commented Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917] 20111022032552P</guid></item><item><title>Commented Issue: Create new plugin Twitter upload media function, use OAuth lib [16715]</title><link>http://cropperplugins.codeplex.com/workitem/16715</link><description>Twitter now has an API for uploading images direct to twitter&amp;#58; https&amp;#58;&amp;#47;&amp;#47;dev.twitter.com&amp;#47;docs&amp;#47;api&amp;#47;1&amp;#47;post&amp;#47;statuses&amp;#47;update_with_media&lt;br /&gt;&lt;br /&gt;Something you might want to consider using from the cropper plugins&amp;#63;&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve got it going with the OAuth lib.  I&amp;#39;m using the Upload.PostFile from&lt;br /&gt;&lt;br /&gt;Salient as the System.Net.WebClient won&amp;#39;t allow me to name the file&amp;#39;s form variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;string url &amp;#61; &amp;#34;https&amp;#58;&amp;#47;&amp;#47;upload.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update_with_media.xml&amp;#63;&amp;#34;&amp;#38;&amp;#35;43&amp;#59;&lt;br /&gt;    &amp;#34;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter &amp;#38;&amp;#35;31169&amp;#59;&amp;#33;&amp;#33;&amp;#34;&lt;br /&gt;    &amp;#41;&amp;#59;&lt;br /&gt;string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;NameValueCollection headers &amp;#61; new NameValueCollection&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;WebResponse fileResponse &amp;#61; Upload.PostFile&amp;#40;new Uri&amp;#40;url&amp;#41;&lt;br /&gt;    , new NameValueCollection&amp;#40;&amp;#41;&lt;br /&gt;    , &amp;#64;&amp;#34;C&amp;#58;&amp;#92;Users&amp;#92;Russ&amp;#92;4063b622-4716-4c19-9050-c7cf8f9f7ec2.jpg&amp;#34;&lt;br /&gt;    , &amp;#34;img&amp;#47;jpeg&amp;#34;&lt;br /&gt;    , &amp;#34;media&amp;#91;&amp;#93;&amp;#34;&lt;br /&gt;    , null&lt;br /&gt;    , headers&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stream s &amp;#61; fileResponse.GetResponseStream&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;using &amp;#40;StreamReader sr &amp;#61; new StreamReader&amp;#40;s&amp;#41;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    string res &amp;#61; sr.ReadToEnd&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.Write&amp;#40;res&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;Comments: ** Comment from web user: techSage ** &lt;p&gt;It would be great to see this implemented - I loved using the Send to TwitPic feature, but it seems to be broken now &amp;#40;see issue item&amp;#58; http&amp;#58;&amp;#47;&amp;#47;cropperplugins.codeplex.com&amp;#47;workitem&amp;#47;15917&amp;#41;.&lt;/p&gt;</description><author>techSage</author><pubDate>Thu, 20 Oct 2011 21:11:14 GMT</pubDate><guid isPermaLink="false">Commented Issue: Create new plugin Twitter upload media function, use OAuth lib [16715] 20111020091114P</guid></item><item><title>Created Issue: Create new plugin Twitter upload media function, use OAuth lib [16715]</title><link>http://cropperplugins.codeplex.com/workitem/16715</link><description>Twitter now has an API for uploading images direct to twitter&amp;#58; https&amp;#58;&amp;#47;&amp;#47;dev.twitter.com&amp;#47;docs&amp;#47;api&amp;#47;1&amp;#47;post&amp;#47;statuses&amp;#47;update_with_media&lt;br /&gt;&lt;br /&gt;Something you might want to consider using from the cropper plugins&amp;#63;&lt;br /&gt;&lt;br /&gt;I&amp;#39;ve got it going with the OAuth lib.  I&amp;#39;m using the Upload.PostFile from&lt;br /&gt;&lt;br /&gt;Salient as the System.Net.WebClient won&amp;#39;t allow me to name the file&amp;#39;s form variable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;string url &amp;#61; &amp;#34;https&amp;#58;&amp;#47;&amp;#47;upload.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update_with_media.xml&amp;#63;&amp;#34;&amp;#38;&amp;#35;43&amp;#59;&lt;br /&gt;    &amp;#34;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter &amp;#38;&amp;#35;31169&amp;#59;&amp;#33;&amp;#33;&amp;#34;&lt;br /&gt;    &amp;#41;&amp;#59;&lt;br /&gt;string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;NameValueCollection headers &amp;#61; new NameValueCollection&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;WebResponse fileResponse &amp;#61; Upload.PostFile&amp;#40;new Uri&amp;#40;url&amp;#41;&lt;br /&gt;    , new NameValueCollection&amp;#40;&amp;#41;&lt;br /&gt;    , &amp;#64;&amp;#34;C&amp;#58;&amp;#92;Users&amp;#92;Russ&amp;#92;4063b622-4716-4c19-9050-c7cf8f9f7ec2.jpg&amp;#34;&lt;br /&gt;    , &amp;#34;img&amp;#47;jpeg&amp;#34;&lt;br /&gt;    , &amp;#34;media&amp;#91;&amp;#93;&amp;#34;&lt;br /&gt;    , null&lt;br /&gt;    , headers&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Stream s &amp;#61; fileResponse.GetResponseStream&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;using &amp;#40;StreamReader sr &amp;#61; new StreamReader&amp;#40;s&amp;#41;&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    string res &amp;#61; sr.ReadToEnd&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    Console.Write&amp;#40;res&amp;#41;&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;</description><author>Cheeso</author><pubDate>Mon, 10 Oct 2011 22:15:22 GMT</pubDate><guid isPermaLink="false">Created Issue: Create new plugin Twitter upload media function, use OAuth lib [16715] 20111010101522P</guid></item><item><title>Commented Issue: new plugin:  Send-to-TFS2010 [14971]</title><link>http://cropperplugins.codeplex.com/workitem/14971</link><description>Because the client interfaces and client DLLs for TFS changed, between 2008 and 2010, I think it will be eaiser and more appropriate to maintain separate plugins to connect to TFS2008 and TFS2010, rather than support both TFS2008 and TFS2010 in the same plugin.  &lt;br /&gt;&lt;br /&gt;I don&amp;#39;t have a use for this particular plugin but if someone wants it, please vote up, and I&amp;#39;ll implement it.  &lt;br /&gt;I&amp;#39;ll need a test TFS server.  Not sure Codeplex is suitable for use this way&amp;#59; I will have to check.&lt;br /&gt;Comments: ** Comment from web user: amissico ** &lt;p&gt;TFS2010 can now be installed on non-servers, both 32- and 64-bit. This is called a &amp;#34;basic&amp;#34; configuration.&lt;/p&gt;</description><author>amissico</author><pubDate>Thu, 23 Jun 2011 02:29:37 GMT</pubDate><guid isPermaLink="false">Commented Issue: new plugin:  Send-to-TFS2010 [14971] 20110623022937A</guid></item><item><title>Created Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917]</title><link>http://cropperplugins.codeplex.com/workitem/15917</link><description>After giving SendtoTwitPic authorization via Twitter through the popup window, I get the above error every time I try to use the plugin.  Checking in the Cropper options, I notice that the Access Token and Access Secret  fields are empty and the Clear button is disabled.  The only way to get prompted for the authorization again is to delete the SendtoTwitPic line in cropper.config.  I&amp;#39;m thinking Authorization from Twitter must have changed, because I now don&amp;#39;t see SendToTwitPic listed in approved Applicaitons on Twitter and Cropper gave me no way to input the PIN that Twitter provided via the authorization process that SendToTwitPic initiated.&lt;br /&gt;</description><author>techSage</author><pubDate>Wed, 25 May 2011 18:55:33 GMT</pubDate><guid isPermaLink="false">Created Issue: SendtoTwitPic Gives Remote Server Error 401 Unauthorized [15917] 20110525065533P</guid></item><item><title>Created Issue: Update GetSignatureBase in OAuth package to handle non-oob scenarios [15756]</title><link>http://cropperplugins.codeplex.com/workitem/15756</link><description>you&amp;#39;ll want to make a small change in your GetSignatureBase method to support non &amp;#34;oob&amp;#34; solutions. &lt;br /&gt;&lt;br /&gt;For non &amp;#34;oob&amp;#34;, you need to URL encode the callback, so you&amp;#39;ll want to add something like this when you&amp;#39;re iterating through this._params&amp;#58; &lt;br /&gt;&lt;br /&gt;if &amp;#40;p1.Key &amp;#61;&amp;#61; &amp;#34;callback&amp;#34;&amp;#41; &amp;#123;&lt;br /&gt;   p.Add&amp;#40;&amp;#34;oauth_&amp;#34; &amp;#43; p1.Key, UrlEncode&amp;#40;p1.Value&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;   continue&amp;#59;&lt;br /&gt;&amp;#125;&lt;br /&gt;</description><author>Cheeso</author><pubDate>Mon, 25 Apr 2011 10:39:17 GMT</pubDate><guid isPermaLink="false">Created Issue: Update GetSignatureBase in OAuth package to handle non-oob scenarios [15756] 20110425103917A</guid></item><item><title>Closed Issue: Fixed OAuth UrlEncode to handle extended characters [15680]</title><link>http://cropperplugins.codeplex.com/workitem/15680</link><description>Hi all,&lt;br /&gt;Here is a fix to the OAuth library to allow it to handle extended characters. &lt;br /&gt;&lt;br /&gt;This change to UrlEncode appears to work for me&amp;#58;&lt;br /&gt;&lt;br /&gt;        public static string UrlEncode&amp;#40;string value&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            byte&amp;#91;&amp;#93; bytes &amp;#61; System.Text.Encoding.UTF8.GetBytes&amp;#40;value&amp;#41;&amp;#59;&lt;br /&gt;            var result &amp;#61; new System.Text.StringBuilder&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            foreach &amp;#40;char symbol in value&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;unreservedChars.IndexOf&amp;#40;symbol&amp;#41; &amp;#33;&amp;#61; -1&amp;#41;&lt;br /&gt;                    result.Append&amp;#40;symbol&amp;#41;&amp;#59;&lt;br /&gt;                else&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    foreach &amp;#40;byte b in Encoding.UTF8.GetBytes&amp;#40;symbol.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#41;&lt;br /&gt;                    &amp;#123;&lt;br /&gt;                        result.Append&amp;#40;&amp;#39;&amp;#37;&amp;#39; &amp;#38;&amp;#35;43&amp;#59; String.Format&amp;#40;&amp;#34;&amp;#123;0&amp;#58;X2&amp;#125;&amp;#34;, b&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;                    &amp;#125;&lt;br /&gt;                &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            return result.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;Here is the code that I&amp;#39;ve been testing it with&amp;#58;&lt;br /&gt;&lt;br /&gt;            OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;            string url &amp;#61; &amp;#34;http&amp;#58;&amp;#47;&amp;#47;api.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update.xml&amp;#63;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter 私のさえずりを設定する&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;            string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            var request &amp;#61; &amp;#40;HttpWebRequest&amp;#41;WebRequest.Create&amp;#40;url&amp;#41;&amp;#59;&lt;br /&gt;            request.Method &amp;#61; &amp;#34;POST&amp;#34;&amp;#59;&lt;br /&gt;            request.PreAuthenticate &amp;#61; true&amp;#59;&lt;br /&gt;            request.AllowWriteStreamBuffering &amp;#61; true&amp;#59;&lt;br /&gt;            request.Headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;var updateResponse &amp;#61; &amp;#40;HttpWebResponse&amp;#41;request.GetResponse&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Console.WriteLine&amp;#40;updateResponse.StatusCode.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Cheers all,&lt;br /&gt;Russell&lt;br /&gt;Comments: &lt;p&gt;Fixed in changeset 72108.  This will be in the binary release of CropperPlugins that follows v1.3.  I expect that number to be v1.4.  &lt;/p&gt;</description><author>Cheeso</author><pubDate>Thu, 21 Apr 2011 03:36:00 GMT</pubDate><guid isPermaLink="false">Closed Issue: Fixed OAuth UrlEncode to handle extended characters [15680] 20110421033600A</guid></item><item><title>Created Issue: Fixed OAuth UrlEncode to handle extended characters [15680]</title><link>http://cropperplugins.codeplex.com/workitem/15680</link><description>Hi all,&lt;br /&gt;Here is a fix to the OAuth library to allow it to handle extended characters. &lt;br /&gt;&lt;br /&gt;This change to UrlEncode appears to work for me&amp;#58;&lt;br /&gt;&lt;br /&gt;        public static string UrlEncode&amp;#40;string value&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            byte&amp;#91;&amp;#93; bytes &amp;#61; System.Text.Encoding.UTF8.GetBytes&amp;#40;value&amp;#41;&amp;#59;&lt;br /&gt;            var result &amp;#61; new System.Text.StringBuilder&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            foreach &amp;#40;char symbol in value&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;unreservedChars.IndexOf&amp;#40;symbol&amp;#41; &amp;#33;&amp;#61; -1&amp;#41;&lt;br /&gt;                    result.Append&amp;#40;symbol&amp;#41;&amp;#59;&lt;br /&gt;                else&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    foreach &amp;#40;byte b in Encoding.UTF8.GetBytes&amp;#40;symbol.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#41;&lt;br /&gt;                    &amp;#123;&lt;br /&gt;                        result.Append&amp;#40;&amp;#39;&amp;#37;&amp;#39; &amp;#38;&amp;#35;43&amp;#59; String.Format&amp;#40;&amp;#34;&amp;#123;0&amp;#58;X2&amp;#125;&amp;#34;, b&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;                    &amp;#125;&lt;br /&gt;                &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            return result.ToString&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;Here is the code that I&amp;#39;ve been testing it with&amp;#58;&lt;br /&gt;&lt;br /&gt;            OAuth.Manager man &amp;#61; new OAuth.Manager&amp;#40;CONSUMER_KEY, CONSUMER_SECRET, token, secret&amp;#41;&amp;#59;&lt;br /&gt;            string url &amp;#61; &amp;#34;http&amp;#58;&amp;#47;&amp;#47;api.twitter.com&amp;#47;1&amp;#47;statuses&amp;#47;update.xml&amp;#63;status&amp;#61;&amp;#34; &amp;#38;&amp;#35;43&amp;#59; OAuth.Manager.UrlEncode&amp;#40;&amp;#34;setting up my twitter 私のさえずりを設定する&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;            string header &amp;#61; man.GenerateAuthzHeader&amp;#40;url, &amp;#34;POST&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            var request &amp;#61; &amp;#40;HttpWebRequest&amp;#41;WebRequest.Create&amp;#40;url&amp;#41;&amp;#59;&lt;br /&gt;            request.Method &amp;#61; &amp;#34;POST&amp;#34;&amp;#59;&lt;br /&gt;            request.PreAuthenticate &amp;#61; true&amp;#59;&lt;br /&gt;            request.AllowWriteStreamBuffering &amp;#61; true&amp;#59;&lt;br /&gt;            request.Headers.Add&amp;#40;&amp;#34;Authorization&amp;#34;, header&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;var updateResponse &amp;#61; &amp;#40;HttpWebResponse&amp;#41;request.GetResponse&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                Console.WriteLine&amp;#40;updateResponse.StatusCode.ToString&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&amp;#59;&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Cheers all,&lt;br /&gt;Russell&lt;br /&gt;</description><author>Cheeso</author><pubDate>Mon, 11 Apr 2011 14:12:05 GMT</pubDate><guid isPermaLink="false">Created Issue: Fixed OAuth UrlEncode to handle extended characters [15680] 20110411021205P</guid></item><item><title>Created Issue: new plugin: Send-to-FTP [15053]</title><link>http://cropperplugins.codeplex.com/workitem/15053</link><description>Create a Send-to-FTP plugin.  Should be pretty straightforward.&lt;br /&gt;&lt;br /&gt;See http&amp;#58;&amp;#47;&amp;#47;cropperplugins.codeplex.com&amp;#47;Thread&amp;#47;View.aspx&amp;#63;ThreadId&amp;#61;240061 for some discussion about it.&lt;br /&gt;</description><author>Cheeso</author><pubDate>Thu, 06 Jan 2011 16:01:23 GMT</pubDate><guid isPermaLink="false">Created Issue: new plugin: Send-to-FTP [15053] 20110106040123P</guid></item><item><title>Created Issue: new plugin:  Send-to-TFS2010 [14971]</title><link>http://cropperplugins.codeplex.com/workitem/14971</link><description>Because the client interfaces and client DLLs for TFS changed, between 2008 and 2010, I think it will be eaiser and more appropriate to maintain separate plugins to connect to TFS2008 and TFS2010, rather than support both TFS2008 and TFS2010 in the same plugin.  &lt;br /&gt;&lt;br /&gt;I don&amp;#39;t have a use for this particular plugin but if someone wants it, please vote up, and I&amp;#39;ll implement it.  &lt;br /&gt;I&amp;#39;ll need a test TFS server.  Not sure Codeplex is suitable for use this way&amp;#59; I will have to check.&lt;br /&gt;</description><author>Cheeso</author><pubDate>Mon, 27 Dec 2010 17:44:12 GMT</pubDate><guid isPermaLink="false">Created Issue: new plugin:  Send-to-TFS2010 [14971] 20101227054412P</guid></item><item><title>Commented Issue: TFSWorkItem Crash [14952]</title><link>http://cropperplugins.codeplex.com/workitem/14952</link><description>TFSWorkItem crashes when open cropper &amp;#39;Options&amp;#39;&lt;br /&gt;&lt;br /&gt;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42; Exception Text &amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&amp;#42;&lt;br /&gt;System.IO.FileNotFoundException&amp;#58; Could not load file or assembly &amp;#39;Microsoft.TeamFoundation.Client, Version&amp;#61;9.0.0.0, Culture&amp;#61;neutral, PublicKeyToken&amp;#61;b03f5f7f11d50a3a&amp;#39; or one of its dependencies. The system cannot find the file specified.&lt;br /&gt;File name&amp;#58; &amp;#39;Microsoft.TeamFoundation.Client, Version&amp;#61;9.0.0.0, Culture&amp;#61;neutral, PublicKeyToken&amp;#61;b03f5f7f11d50a3a&amp;#39;&lt;br /&gt;   at Cropper.TFSWorkItem.OptionsForm..ctor&amp;#40;TfsSettings settings&amp;#41;&lt;br /&gt;   at Cropper.TFSWorkItem.TFS.Fusion8.Cropper.Extensibility.IConfigurablePlugin.get_ConfigurationForm&amp;#40;&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.Options..ctor&amp;#40;&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.MainCropForm.ShowOptionsDialog&amp;#40;&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.MainCropForm.HandleMenuOptionsClick&amp;#40;Object sender, EventArgs e&amp;#41;&lt;br /&gt;   at System.Windows.Forms.MenuItem.OnClick&amp;#40;EventArgs e&amp;#41;&lt;br /&gt;   at System.Windows.Forms.MenuItem.MenuItemData.Execute&amp;#40;&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Command.Invoke&amp;#40;&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Command.DispatchID&amp;#40;Int32 id&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Control.WmCommand&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Control.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.ScrollableControl.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.ContainerControl.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Form.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at Fusion8.Cropper.CropForm.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.Control.ControlNativeWindow.WndProc&amp;#40;Message&amp;#38; m&amp;#41;&lt;br /&gt;   at System.Windows.Forms.NativeWindow.Callback&amp;#40;IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam&amp;#41;&lt;br /&gt;Comments: ** Comment from web user: Cheeso ** &lt;p&gt;I think the way to fix this is to force the Send-to-TFS plugin to load the dependent assembly upon instantiation or load.  This would happen if one of the types in the DLL implemented an interface defined in the &amp;#39;Microsoft.TeamFoundation.Client&amp;#39; assembly. But that isn&amp;#39;t a natural solution.  There might be a better way to do it.  I&amp;#39;ll research. &lt;/p&gt;&lt;p&gt;If the Send-to-TFS plugin tries to resolve the &amp;#39;Microsoft.TeamFoundation.Client&amp;#39; assembly as soon as the Send-to-TFS dll is loaded, in the way described above or in some other way, then when Cropper does its initial scan for plugins, Assembly.LoadFile will throw if the &amp;#39;Microsoft.TeamFoundation.Client&amp;#39; dll is not present in the GAC.  This will cause Cropper to not include the TFS plugin into the list of potential outputs, which will avoid the problem reported here. &lt;br /&gt;&lt;/p&gt;</description><author>Cheeso</author><pubDate>Mon, 27 Dec 2010 16:31:26 GMT</pubDate><guid isPermaLink="false">Commented Issue: TFSWorkItem Crash [14952] 20101227043126P</guid></item><item><title>Commented Issue: Formally define an interface to hold UploadImage() [14963]</title><link>http://cropperplugins.codeplex.com/workitem/14963</link><description>A bunch of these plugins upload images to online services, like Flickr, Picasa, Facebook and so on. &lt;br /&gt;&lt;br /&gt;Recently, the Paint.NET plugin has been updated to also optionally upload the edited image via one of those plugins.  But this feature of Paint.NET relies on the presence of a special method name &amp;#40;UploadImage&amp;#41;, found via reflection.  This is really a job for a formal interface, like IUploadImage.  It should be defined in a common bit of code that can be linked into any&amp;#47;all of the plugins.&lt;br /&gt;&lt;br /&gt;This isn&amp;#39;t possible cleanly in Cropper today.  See &lt;br /&gt;http&amp;#58;&amp;#47;&amp;#47;cropper.codeplex.com&amp;#47;workitem&amp;#47;14970 for an explanation of why.&lt;br /&gt;Comments: ** Comment from web user: Cheeso ** &lt;p&gt;For now I&amp;#39;ve implemented the scaffolding for a correct implementation of this, as far as I can go without a change to Cropper itself.   These changes are all checked in, in a series of checkins ending with 65894. &lt;/p&gt;&lt;p&gt;The IUpload interface is defined in the CropperPlugins.Common.dll.  &lt;/p&gt;&lt;p&gt;The plugins don&amp;#39;t explicitly implemnent the IUpload interface, because for now Cropper uses LoadFile to load the DLLs, which doesn&amp;#39;t load dependencies.  This is the subject of workitem 14970 on the Cropper project. &lt;/p&gt;&lt;p&gt;Instead the plugins provide the method, and any plugin that wants to chain will have to use reflection.  The PaintDotNet plugin uses this approach to construct the list of upload plugins it can chain to.  It also uses reflection to invoke the method.  This will work, until the workitem 14970 is resolved.  &lt;/p&gt;&lt;p&gt;The code in the plugins to workaround this is ifdef&amp;#39;d with HACK.  &lt;/p&gt;&lt;p&gt;For now I will keep this workitem open&amp;#59; when 14970 is resolved, then I can remove the HACK code in the various plugins. &lt;br /&gt;&lt;/p&gt;</description><author>Cheeso</author><pubDate>Mon, 27 Dec 2010 16:22:25 GMT</pubDate><guid isPermaLink="false">Commented Issue: Formally define an interface to hold UploadImage() [14963] 20101227042225P</guid></item><item><title>Created Issue: Formally define an interface to hold UploadImage() [14963]</title><link>http://cropperplugins.codeplex.com/workitem/14963</link><description>A bunch of these plugins upload images to online services, like Flickr, Picasa, Facebook and so on. &lt;br /&gt;&lt;br /&gt;Recently, the Paint.NET plugin has been updated to also optionally upload the edited image via one of those plugins.  But this feature of Paint.NET relies on the presence of a special method name &amp;#40;UploadImage&amp;#41;, found via reflection.  This is really a job for a formal interface, like IUploadImage.  It should be defined in a common bit of code that can be linked into any&amp;#47;all of the plugins.&lt;br /&gt;</description><author>Cheeso</author><pubDate>Sun, 26 Dec 2010 22:03:54 GMT</pubDate><guid isPermaLink="false">Created Issue: Formally define an interface to hold UploadImage() [14963] 20101226100354P</guid></item><item><title>Created Issue: Refactor and test S3 plugin [14961]</title><link>http://cropperplugins.codeplex.com/workitem/14961</link><description>The S3 plugin was created apparently from a Java port. As a result it is much much more complicated than it needs to be.  For example it does all the XML deserialization &amp;#42;manually&amp;#42; rather than using the XmlSerializer that is builtin to .NET.  &lt;br /&gt;&lt;br /&gt;This over complication is also present in other places. For example the code that creates the authorization signature is unnecessarily opaque.&lt;br /&gt;&lt;br /&gt;Also, it uses a legacy REST interface.  Amazon says that apps ought to use a hostname that includes the bucket name.  The S3 plugin does not do this, instead using the older request format. This may be phased out in the future. &lt;br /&gt;&lt;br /&gt;All these things should be fixed, and the plugin ought to be tested.  &lt;br /&gt;This will require an S3 account. &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Also, itThere&lt;br /&gt;</description><author>Cheeso</author><pubDate>Sun, 26 Dec 2010 15:32:31 GMT</pubDate><guid isPermaLink="false">Created Issue: Refactor and test S3 plugin [14961] 20101226033231P</guid></item></channel></rss>