private string createLinkWorker(slink link, bool upload=false) { string appType = constants.UNKNOWN; string uri = constants.UNKNOWN; if(_connected) { appType = appFocusRequest(); uri = appUriRequest(appType); } link.setAppType(appType); link.setUri(uri); //modified by Wander if (appType == constants.APP_APPLE_SAFARI && uri != constants.UNKNOWN) { Trace.WriteLine("Linked to " + uri); } if((appType == constants.APP_APPLE_FINDER || appType == constants.APP_WIN_EXPLORER) && uri != constants.UNKNOWN && upload) { string path; string request; string identifier; if(appType == constants.APP_APPLE_FINDER) { path = Regex.Replace(uri, "file://.*?/", "/"); request = constants.REQUEST_FINDERUPLOAD; identifier = constants.IDENTIFIER_FINDERUPLOAD; } else { path = uri; request = constants.REQUEST_EXPLORERUPLOAD; identifier = constants.IDENTIFIER_EXPLORERUPLOAD; } Dictionary<string, object> dataMap = new Dictionary<string, object>(); Dictionary<string, object> map = new Dictionary<string, object>(); string jsonObject; dataMap.Add(identifier, path); map.Add("TYPE", request); map.Add("DATA", dataMap); Console.WriteLine ("Requesting: {0}", request); jsonObject = JsonConvert.SerializeObject(map); s.write(jsonObject + "\r"); string textData = s.readData(); byte[] data = System.Text.Encoding.Unicode.GetBytes(textData); string extension = Path.GetExtension(path); string mime = slink.getMimeType(extension); link.addResource(data, mime); } return spaces.createNote(link); }