コード例 #1
0
        /// <summary>
        /// 联网获取插件的最新版本
        /// </summary>
        /// <param name="pm"></param>
        /// <returns></returns>
        public static VersionModel GetPluginNewVersion(PluginModel pm)
        {
            VersionModel rs = HttpTool.Get <VersionModel>(R.Settings.Url.WebService + string.Format("getPluginsConfig?name={0}&version={1}", pm.Name, pm.Version));

            //VersionModel rs = JsonTool.ToObjFromFile<VersionModel>(@"D:\CoCo\GitHub\Fork\Fork.Net\Oreo.VersionBuilder\bin\Debug\VersionFile\0602104746.version");
            return(rs);
        }
コード例 #2
0
        /// <summary>
        /// 获取某一天的壁纸(每天8张)
        /// </summary>
        /// <param name="day"></param>
        /// <returns></returns>
        public static WallpaperModel GetSomeday(int day)
        {
            WallpaperModel model = null;

            try
            {
                string rs = HttpTool.Get(string.Format(URL, day));
                model = Json.String2Object <WallpaperModel>(rs);
                return(model);
            }
            catch (Exception e) { return(null); }
        }
コード例 #3
0
 public static GPSInfoWebModel GetInfo(string ak, double longitude, double latitude)
 {
     try
     {
         string          url = $"http://api.map.baidu.com/geocoder/v2/?location={latitude},{longitude}&coordtype=wgs84ll&output=json&ak={ak}";
         string          rs  = HttpTool.Get(url);
         GPSInfoWebModel obj = Json.String2Object <GPSInfoWebModel>(rs);
         if (obj != null)
         {
             return(obj);
         }
     }
     catch { }
     return(null);
 }
コード例 #4
0
ファイル: Settings.cs プロジェクト: xinyutian86/Fork
        public static void ReadFromWeb()
        {
            Frisbee = HttpTool.Get <Frisbee[]>(ServerUrl);
            if (ListTool.IsNullOrEmpty(Frisbee))
            {
                R.Log.e("从服务器读取配置失败 准备第二次尝试");
                Frisbee = HttpTool.Get <Frisbee[]>(ServerUrl);

                if (ListTool.IsNullOrEmpty(Frisbee))
                {
                    R.Log.e("从服务器读取配置失败 准备第三次尝试");
                    Frisbee = HttpTool.Get <Frisbee[]>(ServerUrl);
                }
            }
        }
コード例 #5
0
        internal static List <USBVendorModel> GetByWeb()
        {
            try
            {
                string   s     = HttpTool.Get("http://www.linux-usb.org/usb.ids");
                string[] lines = s.Split('\n');
                if (Ls.Ok(lines))
                {
                    List <USBVendorModel> list         = new List <USBVendorModel>();
                    List <string>         vendor_lines = new List <string>();

                    foreach (var l in lines)
                    {
                        if (l.StartsWith("#"))
                        {
                            continue;
                        }
                        if (!Str.Ok(l.Trim()))
                        {
                            continue;
                        }

                        if (!l.StartsWith("\t") && vendor_lines.Count() > 0)
                        {
                            var model = USBVendorModel.String2Model(vendor_lines);
                            if (model != null)
                            {
                                list.Add(model);
                                if (model.VendorID == "FFEE")
                                {
                                    break;
                                }
                                vendor_lines = new List <string>();
                            }
                        }

                        vendor_lines.Add(l);
                    }

                    if (Ls.Ok(list))
                    {
                        return(list);
                    }
                }
            }
            catch { }
            return(null);
        }
コード例 #6
0
ファイル: WakaSpider.cs プロジェクト: yuzhengyang/Moana
 /// <summary>
 /// 联网获取 Durations 数据
 /// </summary>
 /// <param name="apiKey"></param>
 /// <param name="date"></param>
 /// <returns></returns>
 private static List <Durations> GetDurations(string apiKey, DateTime date)
 {
     try
     {
         string           durationsUrl = string.Format("{0}durations?api_key={1}&date={2}", BaseUrl, apiKey, date.ToString("yyyy-MM-dd"));
         JToken           root         = HttpTool.Get <JToken>(durationsUrl, "gb2312");
         JToken           durations    = root.SelectToken("data");
         List <Durations> result       = new List <Durations>();
         foreach (var item in durations)
         {
             Durations obj = item.ToObject <Durations>();
             result.Add(obj);
         }
         return(result);
     }
     catch (Exception e) { }
     return(null);
 }
コード例 #7
0
ファイル: WakaSpider.cs プロジェクト: yuzhengyang/Moana
 /// <summary>
 /// 联网获取 Heartbeats 数据
 /// </summary>
 /// <param name="apiKey"></param>
 /// <param name="date"></param>
 /// <returns></returns>
 private static List <Heartbeats> GetHeartbeats(string apiKey, DateTime date)
 {
     try
     {
         string            heartbeatsUrl = string.Format("{0}heartbeats?api_key={1}&date={2}", BaseUrl, apiKey, date.ToString("yyyy-MM-dd"));
         JToken            root          = HttpTool.Get <JToken>(heartbeatsUrl, "gb2312");
         JToken            heartbeats    = root.SelectToken("data");
         List <Heartbeats> result        = new List <Heartbeats>();
         foreach (var item in heartbeats)
         {
             Heartbeats obj = item.ToObject <Heartbeats>();
             obj.time = Math.Round(obj.time, 2);
             result.Add(obj);
         }
         return(result);
     }
     catch (Exception e) { }
     return(null);
 }
コード例 #8
0
ファイル: GPSConverter.cs プロジェクト: TheLuther/Fork
 /// <summary>
 /// 设备GPS定位转换为BaiduGPS信息
 /// </summary>
 /// <param name="ak"></param>
 /// <param name="longitude">经度(东经西经,纵向)</param>
 /// <param name="latitude">纬度(北纬南纬,横向)</param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <returns></returns>
 public static bool DeviceGPSToBaiduGPS(string ak, double longitude, double latitude, out double x, out double y)
 {
     x = 0;
     y = 0;
     try
     {
         string             url   = $"http://api.map.baidu.com/geoconv/v1/?coords={longitude},{latitude}&from=1&to=5&ak={ak}";
         string             rs    = HttpTool.Get(url);
         BaiduGPSPointModel rsobj = JsonConvert.DeserializeObject <BaiduGPSPointModel>(rs);
         if (rsobj != null && ListTool.HasElements(rsobj.result))
         {
             x = rsobj.result[0].x;
             y = rsobj.result[0].y;
             return(true);
         }
     }
     catch { }
     return(false);
 }
コード例 #9
0
ファイル: FrisbeeHelper.cs プロジェクト: xinyutian86/Fork
        public static void Fire()
        {
            // 加载配置信息
            if (ListTool.HasElements(Settings.Frisbee))
            {
                R.Log.i("任务配置加载成功 共" + Settings.Frisbee.Count() + " 条");
                // 循环所有任务
                foreach (var f in Settings.Frisbee)
                {
                    if (CanFire(f))//判断执行条件
                    {
                        R.Log.i("准备执行 " + f.FileName + " 的任务");
                        KillProcess(f);        //结束进程

                        if (DownFileAndRun(f)) //下载程序并按需运行
                        {
                            RunProcess(f);     //启动进程

                            if (!string.IsNullOrWhiteSpace(f.SuccUrl))
                            {
                                string succUrl = HttpTool.Get(f.SuccUrl);
                                R.Log.i("完成任务通知服务器 结果:" + succUrl);
                            }
                        }
                        else
                        {
                            R.Log.e("文件下载失败 任务被迫中止");
                        }
                    }
                    else
                    {
                        R.Log.e(f.FileName + " 任务不适应此计算机");
                    }
                }
            }
            else
            {
                R.Log.e("配置加载失败 任务失败");
            }
        }
コード例 #10
0
        /// <summary>
        /// 获取新版本
        /// </summary>
        /// <param name="url"></param>
        /// <param name="version"></param>
        /// <param name="info"></param>
        /// <returns>
        /// -10;//请求版本失败
        /// -20;//没有更新的版本
        /// </returns>
        public int GetNewVersion(string url, Version version, out AppUpdateInfo info)
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();

            info = HttpTool.Get <AppUpdateInfo>(url);
            if (info != null)
            {
                Version newVersion = VersionTool.Format(info.Version);
                if (newVersion != null && newVersion > version)
                {
                    stopwatch.Stop();
                    return((int)stopwatch.Elapsed.TotalSeconds);//成功返回操作时长
                }
                else
                {
                    return(-20);//没有更新的版本
                }
            }
            return(-10);//请求版本失败
        }
コード例 #11
0
        /// <summary>
        /// 获取公网IP地址API
        /// </summary>
        /// <returns></returns>
        public static PublicIPAddressModel GetPublicIP()
        {
            string rs = HttpTool.Get(URL);

            if (Str.Ok(rs))
            {
                int flagbeg = rs.IndexOf("{");
                int flagend = rs.LastIndexOf("}");
                if (flagbeg < flagend)
                {
                    rs = rs.Substring(flagbeg, flagend - flagbeg + 1);
                    Dictionary <string, string> model = Json.String2Object <Dictionary <string, string> >(rs);
                    if (model != null)
                    {
                        model.TryGetValue("cip", out string cip);
                        model.TryGetValue("cid", out string cid);
                        model.TryGetValue("cname", out string cname);
                        PublicIPAddressModel result = new PublicIPAddressModel(cip, cid, cname);
                        return(result);
                    }
                }
            }
            return(null);
        }
コード例 #12
0
        /// <summary>
        /// 获取要更新的插件列表
        /// </summary>
        /// <returns></returns>
        public static List <PluginModel> GetPluginList()
        {
            #region 本地插件列表是否存在
            if (!File.Exists(R.Files.Plugins))
            {
                DirTool.Create(DirTool.GetFilePath(R.Files.Plugins));

                //如果文件不存在 创建新的插件xml
                XElement xe = new XElement("Plugins");
                xe.Save(R.Files.Plugins);
            }
            #endregion
            #region 读取本地插件列表
            List <PluginModel> localPluginList = new List <PluginModel>();
            try
            {
                XElement xe = XElement.Load(R.Files.Plugins);
                IEnumerable <XElement> elements = xe.Elements("Item");
                if (ListTool.HasElements(elements))
                {
                    foreach (var ele in elements)
                    {
                        PluginModel plug = new PluginModel()
                        {
                            Name    = ele.Attribute("Name").Value,
                            Version = ele.Attribute("Version").Value
                        };
                        localPluginList.Add(plug);
                    }
                }
            }
            catch (Exception e) { }
            #endregion
            #region 读取服务器插件列表
            List <PluginModel> serverPluginList = HttpTool.Get <List <PluginModel> >(R.Settings.Url.WebService + "getPluginsList");
            #endregion
            #region 整理需要更新的插件列表
            List <PluginModel> rs = new List <PluginModel>();
            if (ListTool.HasElements(serverPluginList))
            {
                serverPluginList.ForEach(p =>
                {
                    var tmp = localPluginList.FirstOrDefault(x => x.Name == p.Name);
                    if (tmp == null)
                    {
                        //如果服务器有的插件,本地没有,则添加至需要更新的列表
                        rs.Add(p);
                    }
                    else
                    {
                        if (tmp.Version != p.Version)
                        {
                            //如果服务器插件版本和本机插件版本不同,则添加至需要更新列表
                            rs.Add(p);
                        }
                    }
                });
            }
            #endregion
            return(rs);
        }