package com.deepnighttwo.resourceresolver.basic.resolver; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.graphics.Image; import org.json.JSONException; import org.json.JSONObject; import com.deepnighttwo.resourceresolver.basic.Activator; import com.deepnighttwo.resourceresolver.ui.resolver.IResourceResolver; import com.deepnighttwo.resourceresolver.ui.resolver.ResourceResolverColumn; import com.deepnighttwo.resourceresolver.ui.resolver.data.DateData; import com.deepnighttwo.resourceresolver.ui.resolver.data.IResourceDetailsData; import com.deepnighttwo.resourceresolver.ui.resolver.data.IntegerData; import com.deepnighttwo.resourceresolver.ui.resolver.data.LinkData; import com.deepnighttwo.resourceresolver.ui.resolver.data.TextData; import com.deepnighttwo.resourceresolver.ui.views.utils.FileNameSeparater; public class TestResolver implements IResourceResolver { public TestResolver() { } @Override public ResourceResolverColumn[] getResolveColumnNames() { return new ResourceResolverColumn[] { new ResourceResolverColumn("Local Location", 90, (Image) null), new ResourceResolverColumn("Modified Time", 90, (Image) null), new ResourceResolverColumn("Movie Name", 90, null), new ResourceResolverColumn("Year", 90, null), new ResourceResolverColumn("Search On VeryCD", 90, Activator .getImageDescriptor("icons/verycd.png").createImage()), new ResourceResolverColumn("Translated", 90, (Image) null) }; } @Override public IResourceDetailsData[] getResolvedData(final File resourcePath) { List<IResourceDetailsData> testData = new ArrayList<IResourceDetailsData>(); String resourceName = resourcePath.getName(); testData.add(new LinkData(resourcePath.toString())); testData.add(new DateData(resourcePath.lastModified())); String[] nameAndYear = null; try { nameAndYear = FileNameSeparater.getMovieNameAndYear(resourceName); } catch (Throwable ex) { ex.printStackTrace(); nameAndYear = new String[] { "NA", "NA" }; } testData.add(new TextData(nameAndYear[0])); testData.add(new IntegerData(nameAndYear[1])); testData.add(new LinkData("http://www.verycd.com/search/folders/" + nameAndYear[0])); String result; try { result = translateToChinese(nameAndYear[0]); } catch (Exception e) { result = "Error Occured!"; e.printStackTrace(); } testData.add(new TextData(result)); return testData.toArray(new IResourceDetailsData[0]); } private static final String API_KEY = "AIzaSyCzkxaoqCGSMLQ2aoR5smmX39bksGs7l7E"; public static String translateToChinese(String content) throws IOException, JSONException { String contentEncoded = URLEncoder.encode(content, "UTF-8"); URL url = new URL( "https://ajax.googleapis.com/ajax/services/language/translate?" + "v=1.0&q=" + contentEncoded + "&langpair=en%7Czh-CN&key=" + API_KEY); URLConnection connection = url.openConnection(); String line; StringBuilder builder = new StringBuilder(); BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream(), "UTF-8")); while ((line = reader.readLine()) != null) { builder.append(line); } String jsonContent = builder.toString(); // System.out.println(jsonContent); JSONObject json = new JSONObject(jsonContent); String data = json.getJSONObject("responseData").getString( "translatedText"); return data; } }