Example #1
0
		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);
		}