diff --git a/fr-plugin-MarketUpdate-1.0/fr-plugin-MarketUpdate-1.0.jar b/fr-plugin-MarketUpdate-1.0/fr-plugin-MarketUpdate-1.0.jar
index e8d8afa..a93fbcf 100644
Binary files a/fr-plugin-MarketUpdate-1.0/fr-plugin-MarketUpdate-1.0.jar and b/fr-plugin-MarketUpdate-1.0/fr-plugin-MarketUpdate-1.0.jar differ
diff --git a/fr-plugin-MarketUpdate-1.0/plugin.xml b/fr-plugin-MarketUpdate-1.0/plugin.xml
index 8bda294..78041fc 100644
--- a/fr-plugin-MarketUpdate-1.0/plugin.xml
+++ b/fr-plugin-MarketUpdate-1.0/plugin.xml
@@ -11,7 +11,7 @@
[2021-3-6]初始化插件。
]]>
-
+
diff --git a/install/fr-plugin-MarketUpdate-1.0.zip b/install/fr-plugin-MarketUpdate-1.0.zip
index a91135b..e34c198 100644
Binary files a/install/fr-plugin-MarketUpdate-1.0.zip and b/install/fr-plugin-MarketUpdate-1.0.zip differ
diff --git a/plugin.xml b/plugin.xml
index 8bda294..78041fc 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -11,7 +11,7 @@
[2021-3-6]初始化插件。
]]>
-
+
diff --git a/src/main/java/com/fr/plugin/market/update/FRExchangeRate.java b/src/com/fr/plugin/market/update/FRExchangeRate.java
similarity index 89%
rename from src/main/java/com/fr/plugin/market/update/FRExchangeRate.java
rename to src/com/fr/plugin/market/update/FRExchangeRate.java
index 6659fa9..0b7a6e3 100644
--- a/src/main/java/com/fr/plugin/market/update/FRExchangeRate.java
+++ b/src/com/fr/plugin/market/update/FRExchangeRate.java
@@ -3,6 +3,7 @@ package com.fr.plugin.market.update;
import com.alibaba.fastjson.JSONObject;
import com.fr.intelli.record.Focus;
import com.fr.intelli.record.Original;
+import com.fr.locale.InterProviderFactory;
import com.fr.log.FineLoggerFactory;
import com.fr.plugin.market.update.FunConstants;
import com.fr.record.analyzer.EnableMetrics;
@@ -19,6 +20,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
+import com.fr.design.i18n.Toolkit;
import static com.fr.plugin.market.update.FunConstants.CurrencyCodeList;
@EnableMetrics
@@ -33,6 +35,8 @@ public class FRExchangeRate extends AbstractFunction {
if (!checkRes.equals(FunConstants.CHECK_PASS)) {
return Primitive.ERROR_VALUE + checkRes;
}
+ FineLoggerFactory.getLogger().info("InterProviderFactory.getProvider().getLocText(run):{}", InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shanghai_Composite"));
+
String currencyMain = args[0].toString();
String currencyOther = args[1].toString();
float result;
diff --git a/src/main/java/com/fr/plugin/market/update/FRFinanceFunction.java b/src/com/fr/plugin/market/update/FRFinanceFunction.java
similarity index 100%
rename from src/main/java/com/fr/plugin/market/update/FRFinanceFunction.java
rename to src/com/fr/plugin/market/update/FRFinanceFunction.java
diff --git a/src/main/java/com/fr/plugin/market/update/FRForwardMarket.java b/src/com/fr/plugin/market/update/FRForwardMarket.java
similarity index 100%
rename from src/main/java/com/fr/plugin/market/update/FRForwardMarket.java
rename to src/com/fr/plugin/market/update/FRForwardMarket.java
diff --git a/src/main/java/com/fr/plugin/market/update/FRGoldSilver.java b/src/com/fr/plugin/market/update/FRGoldSilver.java
similarity index 100%
rename from src/main/java/com/fr/plugin/market/update/FRGoldSilver.java
rename to src/com/fr/plugin/market/update/FRGoldSilver.java
diff --git a/src/main/java/com/fr/plugin/market/update/FRMarketIndex.java b/src/com/fr/plugin/market/update/FRMarketIndex.java
similarity index 100%
rename from src/main/java/com/fr/plugin/market/update/FRMarketIndex.java
rename to src/com/fr/plugin/market/update/FRMarketIndex.java
diff --git a/src/main/java/com/fr/plugin/market/update/FRStockMarket.java b/src/com/fr/plugin/market/update/FRStockMarket.java
similarity index 100%
rename from src/main/java/com/fr/plugin/market/update/FRStockMarket.java
rename to src/com/fr/plugin/market/update/FRStockMarket.java
diff --git a/src/com/fr/plugin/market/update/FunConstants.java b/src/com/fr/plugin/market/update/FunConstants.java
new file mode 100644
index 0000000..a52f921
--- /dev/null
+++ b/src/com/fr/plugin/market/update/FunConstants.java
@@ -0,0 +1,211 @@
+package com.fr.plugin.market.update;
+
+import com.fr.locale.InterProviderFactory;
+import com.fr.log.FineLoggerFactory;
+import com.fr.plugin.PluginLicenseManager;
+import com.fr.plugin.context.PluginContexts;
+import com.fr.stable.ArrayUtils;
+import com.fr.stable.fun.Authorize;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.regex.Pattern;
+
+import com.fr.design.i18n.Toolkit;
+
+@Authorize(callSignKey = FunConstants.PLUGIN_ID)
+public class FunConstants {
+ static final String PLUGIN_ID = "com.fr.plugin.market.update";
+ static final String AUTHOR_ERROR =InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_AUTHOR_ERROR");
+ static final String CHECK_PASS = InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_CHECK_PASS");
+ static final String ARGS_ERROR= InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_ArgsCountError");
+
+ //外汇
+ static final String[] CurrencyCodeList = new String[]{
+ "USD", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "UYU", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMW"
+ };
+
+ //股市
+ static final String[] StockArgs={
+// "股票名字","今日开盘价","昨日收盘价","当前价格","今日最高价","今日最低价","竞买价","竞卖价","成交股票数","成交金额",
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Name"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Begin_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_End_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Now_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_High_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Low_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Bid_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Auction_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Trade_Volume"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Trade_Amount"),
+// "买一手数","买一报价","买二手数","买二报价","买三手数","买三报价","买四手数","买四报价","买五手数","买五报价",
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_1_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_1_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_2_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_2_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_3_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_3_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_4_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_4_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_5_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Buy_5_Price"),
+// "卖一手数","卖一报价","卖二手数","卖二报价","卖三手数","卖三报价","卖四手数","卖四报价","卖五手数","卖五报价",
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_1_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_1_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_2_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_2_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_3_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_3_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_4_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_4_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_5_Number"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Sell_5_Price"),
+// "日期","时间"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Date"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Stock_Time"),
+ };
+ static final String[] StockCity={
+// "上海","深圳",
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shang_Hai"), InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shen_Zhen")
+ };
+
+ //金银
+ static final String[] GoldType={
+// "伦敦金","伦敦银","COMEX黄金","COMEX白银","黄金T+D","白银T+D"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_British_Gold"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_British_Silver"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_COMEX_Gold"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_COMEX_Silver"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Gold_TD"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Silver_TD"),
+ };
+ static final String[] GoldName={
+// "最新价","涨跌","涨跌幅","最高价","最低价","今开价","昨收价"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_New_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Rise_Fall"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Rise_Fall_Amount"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_High_Price1"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Low_Price1"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Begin_Price1"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_End_Price1"),
+ };
+
+ //期货
+ static final String[] ForwardType={
+// "WTI原油","伦敦布伦特原油","黄金","白银","天然气","铜","美国大豆"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Crude_Oil"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Brent_Oil"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Gold"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Silver"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Natural_Gas"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Copper"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Us_Soybeans"),
+ };
+ static final String[] ForwardURL={
+ "crude-oil","brent-oil","gold","silver","natural-gas","copper","us-soybeans"
+ };
+ static final String[] ForwardAndIndexArgs={
+// "最新","昨收","开盘","最低","最高"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_New_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_End_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_Begin_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_Low_Price"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Forward_High_Price"),
+ };
+
+ //指数
+ static final String[] IndexType={
+// "上证指数","富时中国A50指数","恒生指数","日经225","道琼斯30(F)","美国标普500(F)","美元指数期货"
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shanghai_Composite"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Ftse_China_A50"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Hang_Sen"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Japan_Ni225"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_30-Futures"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_Spx_500_futures"),
+ InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_US_Dollar_Index"),
+ };
+ static final String[] IndexURL={
+ "shanghai-composite","ftse-china-a50","hang-sen-40","japan-ni225","us-30-futures","us-spx-500-futures","us-dollar-index"
+ };
+
+
+ static final boolean author() {
+ return PluginLicenseManager.getInstance().getPluginLicenseByID(PLUGIN_ID).isAvailable();
+ }
+
+ static final boolean CheckStockCode(String code){
+ final String regExp="^002[\\d]{3}|000[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4}$ ";
+ final boolean isMatched = Pattern.compile(regExp).matcher(code).matches();
+ return isMatched;
+ }
+
+ static final String CheckArgs(Object[] args, int num) {
+ String res = FunConstants.CHECK_PASS;
+ int len = ArrayUtils.getLength(args);
+ if (len != num) {
+ return "Fine-Design_FRFinanceFunction_ArgsCountError";
+ }
+ return res;
+ }
+ static final String GetGoldData(String goldType ,String goldArgs) throws IOException {
+ if(!ArrayUtils.contains(GoldType,goldType)||!ArrayUtils.contains(GoldName,goldArgs)){
+ return ARGS_ERROR;
+ }
+
+ final String GOLD_URI = "http://www.dyhjw.com/guojijin.html";
+ final String CLASS_NAME="gold_price_data";
+ final String CSS_QUERY_NAME="[code='XAU']";
+ Document doc = Jsoup.connect(GOLD_URI).ignoreContentType(true).get();
+ String r=doc.getElementsByClass(CLASS_NAME).first().select(CSS_QUERY_NAME).first().text();
+ String[] goldData=r.split(" ");
+ final int goldArgsIndex = ArrayUtils.indexOf(GoldName, goldArgs)+1;
+ return goldData[goldArgsIndex];
+
+ }
+ static final String GetForwardData(String forwardType ,String forwardArgs) throws IOException {
+ if(!ArrayUtils.contains(ForwardType,forwardType)||!ArrayUtils.contains(ForwardAndIndexArgs,forwardArgs)){
+ return ARGS_ERROR;
+ }
+
+ final int i = ArrayUtils.indexOf(ForwardType, forwardType);
+ final String CHINA_BANK_URI = "https://cn.investing.com/commodities/"+ForwardURL[i];
+ String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54";
+ Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get();
+ if(ForwardAndIndexArgs[0].equals(forwardArgs)){
+ return doc.getElementById("last_last").text();
+ }
+
+ final String ELEMENT_ID="quotes_summary_secondary_data";
+ final String CSS_QUERY="[ dir=\"ltr\"]";
+ final String summaryData = doc.getElementById(ELEMENT_ID).select(CSS_QUERY).text().replaceAll("- ","");
+ final String[] split = summaryData.split(" ");
+ final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, forwardArgs);
+ return split[argsIndex-1];
+
+ }
+ static final String GetIndexData(String indexType ,String indexdArgs) throws IOException {
+ FineLoggerFactory.getLogger().info("InterProviderFactory.getProvider().getLocText(\"Fine-Design_Market_Update_Shanghai_Composite\"):{}",InterProviderFactory.getProvider().getLocText("Fine-Design_Market_Update_Shanghai_Composite"));
+ FineLoggerFactory.getLogger().info("IndexType[0]:{}",IndexType[0]);
+ FineLoggerFactory.getLogger().info("ForwardAndIndexArgs[0]:{}",ForwardAndIndexArgs[0]);
+ if(!ArrayUtils.contains(IndexType,indexType)||!ArrayUtils.contains(ForwardAndIndexArgs,indexdArgs)){
+ return ARGS_ERROR;
+ }
+
+ final int i = ArrayUtils.indexOf(IndexType, indexType);
+ final String CHINA_BANK_URI = "https://cn.investing.com/indices/"+IndexURL[i];
+ String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54";
+ Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get();
+
+ if(ForwardAndIndexArgs[0].equals(indexdArgs)){
+ return doc.getElementById("last_last").text();
+ }
+
+ final String summaryData = doc.getElementById("quotes_summary_secondary_data").select("[ dir=\"ltr\"]").text().replaceAll("- ","");
+ final String[] split = summaryData.split(" ");
+ final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, indexdArgs);
+ return split[argsIndex-1];
+
+ }
+}
diff --git a/src/com/fr/plugin/market/update/FunLocaleFinder.java b/src/com/fr/plugin/market/update/FunLocaleFinder.java
new file mode 100644
index 0000000..a7d78b9
--- /dev/null
+++ b/src/com/fr/plugin/market/update/FunLocaleFinder.java
@@ -0,0 +1,17 @@
+package com.fr.plugin.market.update;
+
+import com.fr.intelli.record.Focus;
+import com.fr.intelli.record.Original;
+import com.fr.plugin.transform.FunctionRecorder;
+import com.fr.record.analyzer.EnableMetrics;
+import com.fr.stable.fun.impl.AbstractLocaleFinder;
+
+@FunctionRecorder
+@EnableMetrics
+public class FunLocaleFinder extends AbstractLocaleFinder {
+ @Override
+ @Focus(id = FunConstants.PLUGIN_ID, text = "Plugin-Test_Function_FRExchangeRate", source = Original.PLUGIN)
+ public String find() {
+ return "com/fr/plugin/market/update/local/marketUpdate";
+ }
+}
diff --git a/src/main/java/com/fr/plugin/market/update/TestFun.java b/src/com/fr/plugin/market/update/TestFun.java
similarity index 80%
rename from src/main/java/com/fr/plugin/market/update/TestFun.java
rename to src/com/fr/plugin/market/update/TestFun.java
index 01acf5b..1aaea40 100644
--- a/src/main/java/com/fr/plugin/market/update/TestFun.java
+++ b/src/com/fr/plugin/market/update/TestFun.java
@@ -1,20 +1,13 @@
package com.fr.plugin.market.update;
-import com.alibaba.fastjson.JSONObject;
import com.fr.log.FineLoggerFactory;
-import com.fr.plugin.market.update.FunConstants;
import com.fr.stable.ArrayUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
+import java.util.ResourceBundle;
+
+import static com.fr.design.i18n.Toolkit.i18nText;
public class TestFun {
public static void main(String args[]) throws Exception {
@@ -38,9 +31,9 @@ public class TestFun {
// System.out.println(s);
final String CHINA_BANK_URI = "https://cn.investing.com/currencies/us-dollar-index";
-// if((!ArrayUtils.contains(FunConstants.CurrencyCodeList,"USD"))||(!ArrayUtils.contains(FunConstants.CurrencyCodeList,"USD"))){
-// System.out.printf("00");
-// }
+ if((!ArrayUtils.contains(FunConstants.IndexType,"上证指数"))){
+ System.out.printf("00");
+ }
Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54").get();
// final String body = doc.getElementsByTag("body").first().text();
@@ -53,7 +46,10 @@ public class TestFun {
// final boolean isMatched = Pattern.compile(regExp).matcher("600928").matches();
// String r=doc.getElementsByClass("gold_price_data").first().select("[code='XAU']").first().text();
// String[] ra=r.split(" ");
-
+ ResourceBundle resourceBundle = ResourceBundle.getBundle("marketUpdate");
+ final String string = resourceBundle.getString("Plugin.Function.Market_Update_AUTHOR_ERROR");
+ FineLoggerFactory.getLogger().info(string);
+ FineLoggerFactory.getLogger().info(i18nText("Plugin.Function.Market_Update_AUTHOR_ERROR"));
FineLoggerFactory.getLogger().info(doc.getElementById("last_last").text());
FineLoggerFactory.getLogger().info(doc.getElementById("quotes_summary_secondary_data").select("[ dir=\"ltr\"]").text().replaceAll("- ",""));
}
diff --git a/src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate.properties b/src/com/fr/plugin/market/update/local/marketUpdate.properties
similarity index 75%
rename from src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate.properties
rename to src/com/fr/plugin/market/update/local/marketUpdate.properties
index 7976ac5..f9624b3 100644
--- a/src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate.properties
+++ b/src/com/fr/plugin/market/update/local/marketUpdate.properties
@@ -1,4 +1,3 @@
-Plugin.Function.Market_Update_ID=com.fr.plugin.market.update
Plugin.Function.Market_Update_AUTHOR_ERROR=Error:authorization is expired
Plugin.Function.Market_Update_CHECK_PASS=checkPass
Plugin.Function.Market_Update_ArgsCountError=Args Count Error!
diff --git a/src/com/fr/plugin/market/update/local/marketUpdate_zh_CN.properties b/src/com/fr/plugin/market/update/local/marketUpdate_zh_CN.properties
new file mode 100644
index 0000000..5b4e8fb
--- /dev/null
+++ b/src/com/fr/plugin/market/update/local/marketUpdate_zh_CN.properties
@@ -0,0 +1,66 @@
+Fine-Design_Market_Update_Shang_Hai=\u4e0a\u6d77
+Fine-Design_Market_Update_Shen_Zhen=\u6df1\u5733
+Fine-Design_Market_Update_Stock_Name=\u80a1\u7968\u540d\u5b57
+Fine-Design_Market_Update_Begin_Price=\u4eca\u65e5\u5f00\u76d8\u4ef7
+Fine-Design_Market_Update_End_Price=\u6628\u65e5\u6536\u76d8\u4ef7
+Fine-Design_Market_Update_Now_Price=\u5f53\u524d\u4ef7\u683c
+Fine-Design_Market_Update_High_Price=\u4eca\u65e5\u6700\u9ad8\u4ef7
+Fine-Design_Market_Update_Low_Price=\u4eca\u65e5\u6700\u4f4e\u4ef7
+Fine-Design_Market_Update_Bid_Price=\u7ade\u4e70\u4ef7
+Fine-Design_Market_Update_Auction_Price=\u7ade\u5356\u4ef7
+Fine-Design_Market_Update_Trade_Volume=\u6210\u4ea4\u80a1\u7968\u6570
+Fine-Design_Market_Update_Trade_Amount=\u6210\u4ea4\u91d1\u989d
+Fine-Design_Market_Update_Buy_1_Number=\u4e70\u4e00\u624b\u6570
+Fine-Design_Market_Update_Buy_2_Number=\u4e70\u4e8c\u624b\u6570
+Fine-Design_Market_Update_Buy_3_Number=\u4e70\u4e09\u624b\u6570
+Fine-Design_Market_Update_Buy_4_Number=\u4e70\u56db\u624b\u6570
+Fine-Design_Market_Update_Buy_5_Number=\u4e70\u4e94\u624b\u6570
+Fine-Design_Market_Update_Buy_1_Price=\u4e70\u4e00\u62a5\u4ef7
+Fine-Design_Market_Update_Buy_2_Price=\u4e70\u4e8c\u62a5\u4ef7
+Fine-Design_Market_Update_Buy_3_Price=\u4e70\u4e09\u62a5\u4ef7
+Fine-Design_Market_Update_Buy_4_Price=\u4e70\u56db\u62a5\u4ef7
+Fine-Design_Market_Update_Buy_5_Price=\u4e70\u4e94\u62a5\u4ef7
+Fine-Design_Market_Update_Sell_1_Number=\u5356\u4e00\u624b\u6570
+Fine-Design_Market_Update_Sell_1_Price=\u5356\u4e00\u62a5\u4ef7
+Fine-Design_Market_Update_Sell_2_Number=\u5356\u4e8c\u624b\u6570
+Fine-Design_Market_Update_Sell_2_Price=\u5356\u4e8c\u62a5\u4ef7
+Fine-Design_Market_Update_Sell_3_Number=\u5356\u4e09\u624b\u6570
+Fine-Design_Market_Update_Sell_3_Price=\u5356\u4e09\u62a5\u4ef7
+Fine-Design_Market_Update_Sell_4_Number=\u5356\u56db\u624b\u6570
+Fine-Design_Market_Update_Sell_4_Price=\u5356\u56db\u62a5\u4ef7
+Fine-Design_Market_Update_Sell_5_Number=\u5356\u4e94\u624b\u6570
+Fine-Design_Market_Update_Sell_5_Price=\u5356\u4e94\u62a5\u4ef7
+Fine-Design_Market_Update_Stock_Date=\u65e5\u671f
+Fine-Design_Market_Update_Stock_Time=\u65f6\u95f4
+Fine-Design_Market_Update_New_Price=\u6700\u65b0\u4ef7
+Fine-Design_Market_Update_Rise_Fall=\u6da8\u8dcc
+Fine-Design_Market_Update_Rise_Fall_Amount=\u6da8\u8dcc\u5e45
+Fine-Design_Market_Update_High_Price1=\u6700\u9ad8\u4ef7
+Fine-Design_Market_Update_Low_Price1=\u6700\u4f4e\u4ef7
+Fine-Design_Market_Update_Begin_Price1=\u4eca\u5f00\u4ef7
+Fine-Design_Market_Update_End_Price1=\u6628\u6536\u4ef7
+Fine-Design_Market_Update_Crude_Oil=\u0057\u0054\u0049\u539f\u6cb9
+Fine-Design_Market_Update_Brent_Oil=\u4f26\u6566\u5e03\u4f26\u7279\u539f\u6cb9
+Fine-Design_Market_Update_Gold=\u9ec4\u91d1
+Fine-Design_Market_Update_Silver=\u767d\u94f6
+Fine-Design_Market_Update_Natural_Gas=\u5929\u7136\u6c14
+Fine-Design_Market_Update_Copper=\u94dc
+Fine-Design_Market_Update_Us_Soybeans=\u7f8e\u56fd\u5927\u8c46
+Fine-Design_Market_Update_Forward_New_Price=\u6700\u65b0
+Fine-Design_Market_Update_Forward_End_Price=\u6628\u6536
+Fine-Design_Market_Update_Forward_Begin_Price=\u5f00\u76d8
+Fine-Design_Market_Update_Forward_Low_Price=\u6700\u4f4e
+Fine-Design_Market_Update_Forward_High_Price=\u6700\u9ad8
+Fine-Design_Market_Update_Shanghai_Composite=\u4e0a\u8bc1\u6307\u6570
+Fine-Design_Market_Update_Ftse_China_A50=\u5bcc\u65f6\u4e2d\u56fd\u0041\u0035\u0030\u6307\u6570
+Fine-Design_Market_Update_Hang_Sen=\u6052\u751f\u6307\u6570
+Fine-Design_Market_Update_Japan_Ni225=\u65e5\u7ecf\u0032\u0032\u0035
+Fine-Design_Market_Update_US_30-Futures=\u9053\u743c\u65af\u0033\u0030\u0028\u0046\u0029
+Fine-Design_Market_Update_US_Spx_500_futures=\u7f8e\u56fd\u6807\u666e\u0035\u0030\u0030\u0028\u0046\u0029
+Fine-Design_Market_Update_US_Dollar_Index=\u7f8e\u5143\u6307\u6570\u671f\u8d27
+Fine-Design_Market_Update_British_Gold=\u4f26\u6566\u91d1
+Fine-Design_Market_Update_British_Silver=\u4f26\u6566\u94f6
+Fine-Design_Market_Update_COMEX_Gold=\u0043\u004f\u004d\u0045\u0058\u9ec4\u91d1
+Fine-Design_Market_Update_COMEX_Silver=\u0043\u004f\u004d\u0045\u0058\u767d\u94f6
+Fine-Design_Market_Update_Gold_TD=\u9ec4\u91d1\u0054\u002b\u0044
+Fine-Design_Market_Update_Silver_TD=\u767d\u94f6\u0054\u002b\u0044
\ No newline at end of file
diff --git a/src/com/fr/plugin/market/update/resources/menuIcon.png b/src/com/fr/plugin/market/update/resources/menuIcon.png
new file mode 100644
index 0000000..651aaba
Binary files /dev/null and b/src/com/fr/plugin/market/update/resources/menuIcon.png differ
diff --git a/src/main/java/com/fr/plugin/market/update/FunConstants.java b/src/main/java/com/fr/plugin/market/update/FunConstants.java
deleted file mode 100644
index 585bb0a..0000000
--- a/src/main/java/com/fr/plugin/market/update/FunConstants.java
+++ /dev/null
@@ -1,202 +0,0 @@
-package com.fr.plugin.market.update;
-
-import com.fr.log.FineLoggerFactory;
-import com.fr.plugin.PluginLicenseManager;
-import com.fr.plugin.context.PluginContexts;
-import com.fr.stable.ArrayUtils;
-import com.fr.stable.fun.Authorize;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import java.awt.image.BufferedImage;
-import java.io.File;
-import java.io.IOException;
-import java.util.regex.Pattern;
-
-import static com.fr.design.i18n.Toolkit.i18nText;
-
-@Authorize(callSignKey = FunConstants.PLUGIN_ID)
-public class FunConstants {
- static final String PLUGIN_ID = "com.fr.plugin.market.update";
- static final String AUTHOR_ERROR =i18nText("Plugin.Function.Market_Update_AUTHOR_ERROR");
- static final String CHECK_PASS = i18nText("Plugin.Function.Market_Update_CHECK_PASS");
- static final String ARGS_ERROR= i18nText("Plugin.Function.Market_Update_ArgsCountError");
-
- //外汇
- static final String[] CurrencyCodeList = new String[]{
- "USD", "AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTN", "BWP", "BYN", "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KID", "KMF", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRU", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "SSP", "STN", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TVD", "TWD", "TZS", "UAH", "UGX", "UYU", "UZS", "VES", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMW"
- };
-
- //股市
- static final String[] StockArgs={
- "股票名字","今日开盘价","昨日收盘价","当前价格","今日最高价","今日最低价","竞买价","竞卖价","成交股票数","成交金额",
-// i18nText("Plugin.Function.Market_Update_Stock_Name"),
-// i18nText("Plugin.Function.Market_Update_Begin_Price"),
-// i18nText("Plugin.Function.Market_Update_End_Price"),
-// i18nText("Plugin.Function.Market_Update_Now_Price"),
-// i18nText("Plugin.Function.Market_Update_High_Price"),
-// i18nText("Plugin.Function.Market_Update_Low_Price"),
-// i18nText("Plugin.Function.Market_Update_Bid_Price"),
-// i18nText("Plugin.Function.Market_Update_Auction_Price"),
-// i18nText("Plugin.Function.Market_Update_Trade_Volume"),
-// i18nText("Plugin.Function.Market_Update_Trade_Amount"),
- "买一手数","买一报价","买二手数","买二报价","买三手数","买三报价","买四手数","买四报价","买五手数","买五报价",
-// i18nText("Plugin.Function.Market_Update_Buy_1_Number"),
-// i18nText("Plugin.Function.Market_Update_Buy_1_Price"),
-// i18nText("Plugin.Function.Market_Update_Buy_2_Number"),
-// i18nText("Plugin.Function.Market_Update_Buy_2_Price"),
-// i18nText("Plugin.Function.Market_Update_Buy_3_Number"),
-// i18nText("Plugin.Function.Market_Update_Buy_3_Price"),
-// i18nText("Plugin.Function.Market_Update_Buy_4_Number"),
-// i18nText("Plugin.Function.Market_Update_Buy_4_Price"),
-// i18nText("Plugin.Function.Market_Update_Buy_5_Number"),
-// i18nText("Plugin.Function.Market_Update_Buy_5_Price"),
- "卖一手数","卖一报价","卖二手数","卖二报价","卖三手数","卖三报价","卖四手数","卖四报价","卖五手数","卖五报价",
-// i18nText("Plugin.Function.Market_Update_Sell_1_Number"),
-// i18nText("Plugin.Function.Market_Update_Sell_1_Price"),
-// i18nText("Plugin.Function.Market_Update_Sell_2_Number"),
-// i18nText("Plugin.Function.Market_Update_Sell_2_Price"),
-// i18nText("Plugin.Function.Market_Update_Sell_3_Number"),
-// i18nText("Plugin.Function.Market_Update_Sell_3_Price"),
-// i18nText("Plugin.Function.Market_Update_Sell_4_Number"),
-// i18nText("Plugin.Function.Market_Update_Sell_4_Price"),
-// i18nText("Plugin.Function.Market_Update_Sell_5_Number"),
-// i18nText("Plugin.Function.Market_Update_Sell_5_Price"),
- "日期","时间"
-// i18nText("Plugin.Function.Market_Update_Stock_Date"),
-// i18nText("Plugin.Function.Market_Update_Stock_Time"),
- };
- static final String[] StockCity={
- "上海","深圳",
-// i18nText("Plugin.Function.Market_Update_Shang_Hai"), i18nText("Plugin.Function.Market_Update_Shen_Zhen")
- };
-
- //金银
- static final String[] GoldType={
- "伦敦金","伦敦银","COMEX黄金","COMEX白银","黄金T+D","白银T+D"
- };
- static final String[] GoldName={
- "最新价","涨跌","涨跌幅","最高价","最低价","今开价","昨收价"
-// i18nText("Plugin.Function.Market_Update_New_Price"),
-// i18nText("Plugin.Function.Market_Update_Rise_Fall"),
-// i18nText("Plugin.Function.Market_Update_Rise_Fall_Amount"),
-// i18nText("Plugin.Function.Market_Update_High_Price1"),
-// i18nText("Plugin.Function.Market_Update_Low_Price1"),
-// i18nText("Plugin.Function.Market_Update_Begin_Price1"),
-// i18nText("Plugin.Function.Market_Update_End_Price1"),
- };
-
- //期货
- static final String[] ForwardType={
- "WTI原油","伦敦布伦特原油","黄金","白银","天然气","铜","美国大豆"
-// i18nText("Plugin.Function.Market_Update_Crude_Oil"),
-// i18nText("Plugin.Function.Market_Update_Brent_Oil"),
-// i18nText("Plugin.Function.Market_Update_Gold"),
-// i18nText("Plugin.Function.Market_Update_Silver"),
-// i18nText("Plugin.Function.Market_Update_Natural_Gas"),
-// i18nText("Plugin.Function.Market_Update_Copper"),
-// i18nText("Plugin.Function.Market_Update_Us_Soybeans"),
- };
- static final String[] ForwardURL={
- "crude-oil","brent-oil","gold","silver","natural-gas","copper","us-soybeans"
- };
- static final String[] ForwardAndIndexArgs={
- "最新","昨收","开盘","最低","最高"
-// i18nText("Plugin.Function.Market_Update_Forward_New_Price"),
-// i18nText("Plugin.Function.Market_Update_Forward_End_Price"),
-// i18nText("Plugin.Function.Market_Update_Forward_Begin_Price"),
-// i18nText("Plugin.Function.Market_Update_Forward_Low_Price"),
-// i18nText("Plugin.Function.Market_Update_Forward_High_Price"),
- };
-
- //指数
- static final String[] IndexType={
- "上证指数","富时中国A50指数","恒生指数","日经225","道琼斯30(F)","美国标普500(F)","美元指数期货"
-// i18nText("Plugin.Function.Market_Update_Shanghai_Composite"),
-// i18nText("Plugin.Function.Market_Update_Ftse_China_A50"),
-// i18nText("Plugin.Function.Market_Update_Hang_Sen"),
-// i18nText("Plugin.Function.Market_Update_Japan_Ni225"),
-// i18nText("Plugin.Function.Market_Update_US_30-Futures"),
-// i18nText("Plugin.Function.Market_Update_US_Spx_500_futures"),
-// i18nText("Plugin.Function.Market_Update_US_Dollar_Index"),
- };
- static final String[] IndexURL={
- "shanghai-composite","ftse-china-a50","hang-sen-40","japan-ni225","us-30-futures","us-spx-500-futures","us-dollar-index"
- };
-
-
- static final boolean author() {
- return PluginLicenseManager.getInstance().getPluginLicenseByID(PLUGIN_ID).isAvailable();
- }
-
- static final boolean CheckStockCode(String code){
- final String regExp="^002[\\d]{3}|000[\\d]{3}|300[\\d]{3}|600[\\d]{3}|60[\\d]{4}$ ";
- final boolean isMatched = Pattern.compile(regExp).matcher(code).matches();
- return isMatched;
- }
-
- static final String CheckArgs(Object[] args, int num) {
- String res = FunConstants.CHECK_PASS;
- int len = ArrayUtils.getLength(args);
- if (len != num) {
- return "Plugin.Function.FRFinanceFunction_ArgsCountError";
- }
- return res;
- }
- static final String GetGoldData(String goldType ,String goldArgs) throws IOException {
- if(!ArrayUtils.contains(GoldType,goldType)||!ArrayUtils.contains(GoldName,goldArgs)){
- return ARGS_ERROR;
- }
-
- final String GOLD_URI = "http://www.dyhjw.com/guojijin.html";
- final String CLASS_NAME="gold_price_data";
- final String CSS_QUERY_NAME="[code='XAU']";
- Document doc = Jsoup.connect(GOLD_URI).ignoreContentType(true).get();
- String r=doc.getElementsByClass(CLASS_NAME).first().select(CSS_QUERY_NAME).first().text();
- String[] goldData=r.split(" ");
- final int goldArgsIndex = ArrayUtils.indexOf(GoldName, goldArgs)+1;
- return goldData[goldArgsIndex];
-
- }
- static final String GetForwardData(String forwardType ,String forwardArgs) throws IOException {
- if(!ArrayUtils.contains(ForwardType,forwardType)||!ArrayUtils.contains(ForwardAndIndexArgs,forwardArgs)){
- return ARGS_ERROR;
- }
-
- final int i = ArrayUtils.indexOf(ForwardType, forwardType);
- final String CHINA_BANK_URI = "https://cn.investing.com/commodities/"+ForwardURL[i];
- String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54";
- Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get();
- if(ForwardAndIndexArgs[0].equals(forwardArgs)){
- return doc.getElementById("last_last").text();
- }
-
- final String ELEMENT_ID="quotes_summary_secondary_data";
- final String CSS_QUERY="[ dir=\"ltr\"]";
- final String summaryData = doc.getElementById(ELEMENT_ID).select(CSS_QUERY).text().replaceAll("- ","");
- final String[] split = summaryData.split(" ");
- final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, forwardArgs);
- return split[argsIndex-1];
-
- }
- static final String GetIndexData(String indexType ,String indexdArgs) throws IOException {
- FineLoggerFactory.getLogger().info("ForwardAndIndexArgs[0]:{}",ForwardAndIndexArgs[0]);
- if(!ArrayUtils.contains(IndexType,indexType)||!ArrayUtils.contains(ForwardAndIndexArgs,indexdArgs)){
- return ARGS_ERROR;
- }
-
- final int i = ArrayUtils.indexOf(IndexType, indexType);
- final String CHINA_BANK_URI = "https://cn.investing.com/indices/"+IndexURL[i];
- String agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.54";
- Document doc = Jsoup.connect(CHINA_BANK_URI).ignoreContentType(true).userAgent(agent).get();
-
- if(ForwardAndIndexArgs[0].equals(indexdArgs)){
- return doc.getElementById("last_last").text();
- }
-
- final String summaryData = doc.getElementById("quotes_summary_secondary_data").select("[ dir=\"ltr\"]").text().replaceAll("- ","");
- final String[] split = summaryData.split(" ");
- final int argsIndex = ArrayUtils.indexOf(ForwardAndIndexArgs, indexdArgs);
- return split[argsIndex-1];
-
- }
-}
diff --git a/src/main/java/com/fr/plugin/market/update/MyLocaleFinder.java b/src/main/java/com/fr/plugin/market/update/MyLocaleFinder.java
deleted file mode 100644
index 0b7cb53..0000000
--- a/src/main/java/com/fr/plugin/market/update/MyLocaleFinder.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.fr.plugin.market.update;
-
-import com.fr.stable.fun.impl.AbstractLocaleFinder;
-
-public class MyLocaleFinder extends AbstractLocaleFinder {
- @Override
- public String find() {
- return "com/fr/plugin/market/update";
- }
-}
diff --git a/src/main/market update.iml b/src/main/market update.iml
deleted file mode 100644
index 233c41f..0000000
--- a/src/main/market update.iml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate_zh_CN.properties b/src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate_zh_CN.properties
deleted file mode 100644
index b722f4f..0000000
--- a/src/main/resources/com/fr/com.fr.plugin.market.update/marketUpdate_zh_CN.properties
+++ /dev/null
@@ -1,60 +0,0 @@
-Plugin.Function.Market_Update_Shang_Hai=\u4e0a\u6d77
-Plugin.Function.Market_Update_Shen_Zhen=\u6df1\u5733
-Plugin.Function.Market_Update_Stock_Name=\u80a1\u7968\u540d\u5b57
-Plugin.Function.Market_Update_Begin_Price=\u4eca\u65e5\u5f00\u76d8\u4ef7
-Plugin.Function.Market_Update_End_Price=\u6628\u65e5\u6536\u76d8\u4ef7
-Plugin.Function.Market_Update_Now_Price=\u5f53\u524d\u4ef7\u683c
-Plugin.Function.Market_Update_High_Price=\u4eca\u65e5\u6700\u9ad8\u4ef7
-Plugin.Function.Market_Update_Low_Price=\u4eca\u65e5\u6700\u4f4e\u4ef7
-Plugin.Function.Market_Update_Bid_Price=\u7ade\u4e70\u4ef7
-Plugin.Function.Market_Update_Auction_Price=\u7ade\u5356\u4ef7
-Plugin.Function.Market_Update_Trade_Volume=\u6210\u4ea4\u80a1\u7968\u6570
-Plugin.Function.Market_Update_Trade_Amount=\u6210\u4ea4\u91d1\u989d
-Plugin.Function.Market_Update_Buy_1_Number=\u4e70\u4e00\u624b\u6570
-Plugin.Function.Market_Update_Buy_2_Number=\u4e70\u4e8c\u624b\u6570
-Plugin.Function.Market_Update_Buy_3_Number=\u4e70\u4e09\u624b\u6570
-Plugin.Function.Market_Update_Buy_4_Number=\u4e70\u56db\u624b\u6570
-Plugin.Function.Market_Update_Buy_5_Number=\u4e70\u4e94\u624b\u6570
-Plugin.Function.Market_Update_Buy_1_Price=\u4e70\u4e00\u62a5\u4ef7
-Plugin.Function.Market_Update_Buy_2_Price=\u4e70\u4e8c\u62a5\u4ef7
-Plugin.Function.Market_Update_Buy_3_Price=\u4e70\u4e09\u62a5\u4ef7
-Plugin.Function.Market_Update_Buy_4_Price=\u4e70\u56db\u62a5\u4ef7
-Plugin.Function.Market_Update_Buy_5_Price=\u4e70\u4e94\u62a5\u4ef7
-Plugin.Function.Market_Update_Sell_1_Number=\u5356\u4e00\u624b\u6570
-Plugin.Function.Market_Update_Sell_1_Price=\u5356\u4e00\u62a5\u4ef7
-Plugin.Function.Market_Update_Sell_2_Number=\u5356\u4e8c\u624b\u6570
-Plugin.Function.Market_Update_Sell_2_Price=\u5356\u4e8c\u62a5\u4ef7
-Plugin.Function.Market_Update_Sell_3_Number=\u5356\u4e09\u624b\u6570
-Plugin.Function.Market_Update_Sell_3_Price=\u5356\u4e09\u62a5\u4ef7
-Plugin.Function.Market_Update_Sell_4_Number=\u5356\u56db\u624b\u6570
-Plugin.Function.Market_Update_Sell_4_Price=\u5356\u56db\u62a5\u4ef7
-Plugin.Function.Market_Update_Sell_5_Number=\u5356\u4e94\u624b\u6570
-Plugin.Function.Market_Update_Sell_5_Price=\u5356\u4e94\u62a5\u4ef7
-Plugin.Function.Market_Update_Stock_Date=\u65e5\u671f
-Plugin.Function.Market_Update_Stock_Time=\u65f6\u95f4
-Plugin.Function.Market_Update_New_Price=\u6700\u65b0\u4ef7
-Plugin.Function.Market_Update_Rise_Fall=\u6da8\u8dcc
-Plugin.Function.Market_Update_Rise_Fall_Amount=\u6da8\u8dcc\u5e45
-Plugin.Function.Market_Update_High_Price1=\u6700\u9ad8\u4ef7
-Plugin.Function.Market_Update_Low_Price1=\u6700\u4f4e\u4ef7
-Plugin.Function.Market_Update_Begin_Price1=\u4eca\u5f00\u4ef7
-Plugin.Function.Market_Update_End_Price1=\u6628\u6536\u4ef7
-Plugin.Function.Market_Update_Crude_Oil=\u0057\u0054\u0049\u539f\u6cb9
-Plugin.Function.Market_Update_Brent_Oil=\u4f26\u6566\u5e03\u4f26\u7279\u539f\u6cb9
-Plugin.Function.Market_Update_Gold=\u9ec4\u91d1
-Plugin.Function.Market_Update_Silver=\u767d\u94f6
-Plugin.Function.Market_Update_Natural_Gas=\u5929\u7136\u6c14
-Plugin.Function.Market_Update_Copper=\u94dc
-Plugin.Function.Market_Update_Us_Soybeans=\u7f8e\u56fd\u5927\u8c46
-Plugin.Function.Market_Update_Forward_New_Price=\u6700\u65b0
-Plugin.Function.Market_Update_Forward_End_Price=\u6628\u6536
-Plugin.Function.Market_Update_Forward_Begin_Price=\u5f00\u76d8
-Plugin.Function.Market_Update_Forward_Low_Price=\u6700\u4f4e
-Plugin.Function.Market_Update_Forward_High_Price=\u6700\u9ad8
-Plugin.Function.Market_Update_Shanghai_Composite=\u4e0a\u8bc1\u6307\u6570
-Plugin.Function.Market_Update_Ftse_China_A50=\u5bcc\u65f6\u4e2d\u56fd\u0041\u0035\u0030\u6307\u6570
-Plugin.Function.Market_Update_Hang_Sen=\u6052\u751f\u6307\u6570
-Plugin.Function.Market_Update_Japan_Ni225=\u65e5\u7ecf\u0032\u0032\u0035
-Plugin.Function.Market_Update_US_30-Futures=\u9053\u743c\u65af\u0033\u0030\u0028\u0046\u0029
-Plugin.Function.Market_Update_US_Spx_500_futures=\u7f8e\u56fd\u6807\u666e\u0035\u0030\u0030\u0028\u0046\u0029
-Plugin.Function.Market_Update_US_Dollar_Index=\u7f8e\u5143\u6307\u6570\u671f\u8d27
\ No newline at end of file