using System;
using System.Web;
using System.Collections.Generic;
// The 'text' parameter will contain the text from the:
// - Current Clipboard when run by HotKey
// - History Item when run from the History Menu
// The returned string will be:
// - Placed directly on the Clipboard when run as a Macro
// - Ignored by ClipboardFusion if it is 'null'
// - Passed along to the next action in a Trigger (null changed to an empty string)
public static class ClipboardFusionHelper
{
public static string ProcessText(string text)
{
// Get the highlighted text
text = BFS.Clipboard.CopyText();
// Search the Clipboard History for a URL
for(int i = 0; i < BFS.ClipboardFusion.GetHistoryItemCount(); i++)
{
// If there's no text, it can't be a url
if(!BFS.ClipboardFusion.GetHistoryIndexContainsText(i))
continue;
// See if Uri.TryCreate can succeed
string history = BFS.ClipboardFusion.GetHistoryText(i);
Uri result;
if((history.IndexOf("http") != 0) || (!Uri.TryCreate(history, UriKind.Absolute, out result)))
continue;
// Paste what we found
BFS.Clipboard.PasteText("<a href=\"" + history + "\">" + HttpUtility.HtmlEncode(text) + "</a>");
break;
}
return null;
}
}