Пример #1
0
        private async void SalvarDatabase_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (Ip.Text != "" && Porta.Text != "" && Database.Text != "" && User.Text != "" && Senha.Password != "")
            {
                DBConfig dBConfig = new DBConfig
                {
                    IP       = Ip.Text,
                    Database = Database.Text,
                    User     = User.Text,
                    Senha    = Senha.Password
                };

                if (uint.TryParse(Porta.Text, out uint porta))
                {
                    dBConfig.Porta = porta;
                    await new DBConfigDAO().Adicionar(dBConfig);
                    await DbConfigLer();
                }
                else
                {
                    MessageBox.Show("Esse é mesmo um numero ?", "Kurosawa Dia - Alerta", MessageBoxButton.OK);
                }
            }
            else
            {
                MessageBox.Show("Acho que esqueceu de me dizer alguma coisa.", "Kurosawa Dia - Alerta", MessageBoxButton.OK);
            }
        }
Пример #2
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var houses        = new List <DBHouse>();
            var resultJObject = JObject.Parse(data);

            if (resultJObject["content"] == null ||
                resultJObject["content"]["roomInfos"] == null)
            {
                return(houses);
            }
            foreach (var room in resultJObject["content"]["roomInfos"])
            {
                try
                {
                    var    housePrice      = room["maxShowPrice"].ToObject <int>();
                    var    lastPublishTime = GetPublishTime(room);
                    string location        = room["address"] != null ? room["address"].ToString() : room["title"].ToString();
                    var    house           = GetHouse(config.City, room, housePrice, lastPublishTime, location);
                    houses.Add(house);
                }
                catch (Exception ex)
                {
                    LogHelper.Error("Convert to House error", ex, room);
                }
            }
            return(houses);
        }
Пример #3
0
        public bool TryLoad(string path, out DBConfig dBConfig, out string error)
        {
            error    = null;
            dBConfig = null;
            try
            {
                if (!File.Exists(path))
                {
                    throw new Exception($"file not found : {path}");
                }

                // Read File
                JsonTextReader reader = new JsonTextReader(new StringReader(File.ReadAllText(path)));

                // JSON Schema
                JSchemaValidatingReader validatingReader = new JSchemaValidatingReader(reader);
                JSchemaGenerator        generator        = new JSchemaGenerator();
                validatingReader.Schema = generator.Generate(typeof(DBConfig));

                // Deserialize
                JsonSerializer serializer = new JsonSerializer();
                dBConfig = serializer.Deserialize <DBConfig>(validatingReader);

                return(dBConfig != null);
            }
            catch (Exception ex)
            {
                error = $"error occured when load the configuration of the database with the reason {ex.Message}";
                return(false);
            }
        }
Пример #4
0
        public IActionResult InitBaixingConfig()
        {
            var configDapper = _serviceProvider.GetServices <ConfigDapper>().FirstOrDefault();
            var result       = LoadJson("Resources/Baixing.json");
            var configs      = new List <DBConfig>();

            foreach (var item in result["info"]["area"]["getAllCities"])
            {
                if (item["cities"] != null)
                {
                    foreach (var city in item["cities"])
                    {
                        var config = new DBConfig();
                        config.City      = city["name"].ToString();
                        config.Id        = Tools.GetUUId();
                        config.Json      = "{'areaId':'" + city["id"].ToString() + "','session':'$2y$10$Cz9H5ib/ZKh0UOZxVp2rCOeiBjK7Y7/ZmOuUipdZ65QPhms7DpGD2'}";
                        config.PageCount = 30;
                        config.Source    = SourceEnum.BaixingWechat.GetSourceName();
                        configs.Add(config);
                    }
                }
                else
                {
                    var config = new DBConfig();
                    config.City      = item["name"].ToString();
                    config.Id        = Tools.GetUUId();
                    config.Json      = "{'areaId':'" + item["id"].ToString() + "','session':'$2y$10$Cz9H5ib/ZKh0UOZxVp2rCOeiBjK7Y7/ZmOuUipdZ65QPhms7DpGD2'}";
                    config.PageCount = 30;
                    config.Source    = SourceEnum.BaixingWechat.GetSourceName();
                    configs.Add(config);
                }
            }
            configDapper.BulkInsert(configs);
            return(Json(new { success = true, data = configs }));
        }
Пример #5
0
        public override string GetJsonOrHTML(DBConfig config, int page)
        {
            var jsonData            = JToken.Parse(config.Json);
            var targetDestinationId = jsonData["targetDestinationId"].ToString();
            var pageIndex           = page + 1;

            var request = new RestRequest(Method.POST);

            request.AddHeader("referer", "https://m.cjia.com/longMixedUnitList/104/93?");
            request.AddHeader("authority", "m.cjia.com");
            request.AddHeader("cache-control", "no-cache");
            request.AddHeader("header", "{\"applicationCode\":\"PORTAL-H5\",\"clientId\":\"\",\"sourceId\":\"M0000009\",\"exSourceId\":\"CJIA\",\"channel\":\"CJIA\",\"subChannel\":\"H5\",\"version\":\"2.0.0\",\"userToken\":\"\"}");
            request.AddHeader("accept", "*/*");
            request.AddHeader("content-type", "application/json;charset=UTF-8");
            request.AddHeader("user-agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
            request.AddHeader("pragma", "no-cache");
            request.AddHeader("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,da;q=0.7,zh-TW;q=0.6");
            request.AddHeader("accept-encoding", "gzip, deflate, br");
            request.AddHeader("origin", "https://m.cjia.com");
            request.AddParameter("application/json;charset=UTF-8",
                                 "{\"productChannel\":2,\"querys\":[],\"filters\":{},\"page\":{\"pageIndex\":"
                                 + pageIndex + ",\"pageSize\":10,\"sortBy\":0},\"targetDestinationId\":"
                                 + targetDestinationId + ",\"targetPoint\":{},\"queryStrategy\":2}", ParameterType.RequestBody);
            IRestResponse response = _restClient.Execute(request);

            return(response.IsSuccessful ? response.Content : "");
        }
Пример #6
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var xDoc   = XDocument.Parse(data);
            var houses = new List <DBHouse>();
            var domain = JToken.Parse(config.Json)["domain"]?.ToString();

            foreach (var element in xDoc.Element("houses").Elements().Where(e => e.Name == "houseinfo"))
            {
                var house = new DBHouse();
                house.Id = Tools.GetGuid();
                var houseFields = element.Elements();
                var houseId     = GetFieldValue(houseFields, "houseid");
                house.OnlineURL = $"http://{domain}/chuzu/1_{houseId}_-1.htm";
                house.City      = GetFieldValue(houseFields, "city");
                house.Location  = GetFieldValue(houseFields, "address");
                house.Longitude = GetFieldValue(houseFields, "coord_x");
                house.Latitude  = GetFieldValue(houseFields, "coord_y");
                house.Price     = int.Parse(GetFieldValue(houseFields, "price"));
                house.Title     = GetFieldValue(houseFields, "title");
                house.PicURLs   = JsonConvert.SerializeObject(new List <string>()
                {
                    GetFieldValue(houseFields, "titleimage")
                });
                house.PubTime  = DateTime.Parse(GetFieldValue(houseFields, "addtime"));
                house.JsonData = element.ToString();
                house.Title    = GetTitle(houseFields);;
                house.Tags     = GetFieldValue(houseFields, "tags");
                house.RentType = GetRentType(houseFields);
                house.Source   = SourceEnum.Fangtianxia.GetSourceName();
                Console.WriteLine(house.Title);
                houses.Add(house);
            }
            return(houses);
        }
Пример #7
0
        /// <summary>
        /// 按数据库名称并根据传入的参数进行查询
        /// </summary>
        /// <param name="columns">查询的列名</param>
        /// <param name="tableSql">查询的表体</param>
        /// <param name="cond">条件,以and|or连接字开始</param>
        /// <param name="sort">排序字段</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="rowCount">查询结果的行数</param>
        /// <returns>返回一个DataSet并带出查询的行数</returns>
        public static DataSet GetTable(string columns, string tableSql, string cond, string sort, DBConfigEnum DBName, out int rowCount)
        {
            if (string.IsNullOrWhiteSpace(sort))
            {
                sort = DefaultSortStr;
            }
            if (string.IsNullOrWhiteSpace(columns) || string.IsNullOrWhiteSpace(tableSql) || string.IsNullOrWhiteSpace(sort))
            {
                throw new Exception("空值的参数设定");
            }
            string  sql      = $@"select * from ( 
	select ROW_NUMBER() over( order by {sort}) rowid, {columns} from {tableSql}
	where 1=1 {cond}
) t ";
            string  countSql = $@"select Count(1) from ( 
	select ROW_NUMBER() over( order by {sort}) rowid, {columns} from {tableSql}
	where 1=1 {cond}
) t ";
            DataSet ds       = new DataSet();

            ds = ExecuteSql(sql, DBName);
            using (var conn = new DBConfig().InitConn(DBName.ToString())) {
                rowCount = conn.ExecuteScalar <int>(countSql);
            }
            return(ds);
        }
Пример #8
0
        public IHttpActionResult GetPortalBooks()
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.AllBooks.ToList();

            return(Json(items));
        }
Пример #9
0
        public IHttpActionResult GetPortalBookDetails(string bookId)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.AllBooks.Where(n => n.No == bookId).ToList();

            return(Json(items));
        }
Пример #10
0
        public IHttpActionResult GetPortalCustomers(string customerNo)
        {
            var odataCon = DBConfig.ODataObj();
            var users    = odataCon.Customers.Where(c => c.No == customerNo).ToList();

            return(Json(users));
        }
Пример #11
0
        public IHttpActionResult PortalUsersbyId(string custNo)
        {
            var odataCon = DBConfig.ODataObj();
            var users    = odataCon.ECommerceUsers.ToList().Where(p => p.customerNo == custNo);

            return(Json(users));
        }
Пример #12
0
        public IHttpActionResult GetCart()
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.Cart.ToList();

            return(Json(items));
        }
Пример #13
0
        public IHttpActionResult GetPostedReceipt(string custNo)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.Posted_Receipts.Where(c => c.Payee_Account_No == custNo).ToList();

            return(Json(items));
        }
Пример #14
0
        public IHttpActionResult GetPortalUsers()
        {
            var odataCon = DBConfig.ODataObj();
            var users    = odataCon.ECommerceUsers.ToList();

            return(Json(users));
        }
Пример #15
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var houses = new List <DBHouse>();
            var topics = JToken.Parse(data)?["topics"];

            foreach (var topic in topics)
            {
                DBHouse house     = new DBHouse();
                var     onlineURL = $"https://fang.douban.com/topics/{topic["id"].ToString()}/";
                house.Id        = Tools.GetUUId();
                house.OnlineURL = onlineURL;
                var topicDetailJson = GetTopicDetail(topic["id"].ToString());
                if (!string.IsNullOrEmpty(topicDetailJson))
                {
                    var topicDetail = JToken.Parse(topicDetailJson)?["data"];
                    house.Title      = topicDetail["title"].ToString();
                    house.Price      = topicDetail["rent_fee"].ToObject <int>();
                    house.Location   = topicDetail["district_tag"]["name"].ToString();
                    house.Latitude   = topicDetail["district_tag"]["latitude"].ToString();
                    house.Longitude  = topicDetail["district_tag"]["longitude"].ToString();
                    house.PubTime    = topicDetail["create_time"].ToObject <DateTime>();
                    house.RentType   = ConvertRentType(topicDetail["rent_type"].ToObject <int>(), topicDetail["house_type_display"].ToString());
                    house.Text       = topicDetail["description"].ToString();
                    house.Labels     = string.Join("|", topicDetail["labels"].ToObject <List <string> >());
                    house.Source     = SourceEnum.DoubanWechat.GetSourceName();
                    house.JsonData   = topicDetailJson;
                    house.City       = config.City;
                    house.CreateTime = DateTime.Now;
                    house.Tags       = $"{topicDetail["house_type_display"]?.ToString()}|{topicDetail["direction_display"]?.ToString()}|{topicDetail["topic_kind_display"]?.ToString()}";
                    house.PicURLs    = JsonConvert.SerializeObject(topicDetail["photos"].Select(item => item["large_picture_url"].ToString()));
                    houses.Add(house);
                }
            }
            return(houses);
        }
Пример #16
0
        public IHttpActionResult GetPortalBookByCategory(string invePostingId)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.AllBooks.Where(n => n.Inventory_Posting_Group == invePostingId).ToList();

            return(Json(items));
        }
Пример #17
0
        public IHttpActionResult GetCreditMemoDetails(string documentNo)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.CreditMemoLines.Where(c => c.Document_No == documentNo).ToList();

            return(Json(items));
        }
Пример #18
0
        public IHttpActionResult GetInventoryPostGroup()
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.Inventory_Posting_Groups.ToList();

            return(Json(items));
        }
Пример #19
0
        /// <summary>
        /// 将实体插入到指定的数据库中
        /// </summary>
        /// <typeparam name="T">实体类型</typeparam>
        /// <param name="model">实体对象</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="tableName">表名,可空,空时为类型名</param>
        /// <param name="isSkip">是否跳过指定列,默认跳过</param>
        /// <param name="skipColumns">跳过的列名,默认为配置的列</param>
        /// <returns></returns>
        public static int InsertSql <T>(T model, DBConfigEnum DBName, string tableName = "", bool?isSkip = null, string[] skipColumns = null)
        {
            StringBuilder     sql     = new StringBuilder();
            string            columns = "";
            string            values  = "";
            DynamicParameters param   = new DynamicParameters();

            if (isSkip == null)
            {
                isSkip = _isSkip;
            }
            if (skipColumns == null)
            {
                skipColumns = _InsertSkipColumns;
            }
            if (string.IsNullOrWhiteSpace(tableName))
            {
                tableName = typeof(T).Name;//model.GetType().Name;
            }

            foreach (var a in model.GetType().GetProperties())
            {
                if (isSkip == true)
                {
                    bool isContinue = false;
                    foreach (var c in skipColumns)
                    {
                        if (a.Name.ToLower() == c.ToLower())
                        {
                            isContinue = true;
                            break;
                        }
                    }
                    if (isContinue)
                    {
                        continue;
                    }
                }
                columns += a.Name + ",";
                values  += "@" + a.Name + ",";
                if (string.IsNullOrWhiteSpace(Convert.ToString(a.GetValue(model))))
                {
                    param.Add("@" + a.Name, null);
                }
                else
                {
                    param.Add(a.Name, a.GetValue(model).ToString());
                }
            }
            if (!string.IsNullOrWhiteSpace(columns))
            {
                columns = columns.Substring(0, columns.Length - 1);
                values  = values.Substring(0, values.Length - 1);
            }
            sql.Append($" insert into {tableName}({columns}) values({values}) ");
            using (var conn = new DBConfig().InitConn(DBName.ToString()))
            {
                return(conn.Execute(sql.ToString(), param));
            }
        }
Пример #20
0
        public IHttpActionResult GetCart(string custNo)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.Cart.Where(c => c.CustomerNo == custNo).ToList();

            return(Json(items));
        }
Пример #21
0
        /// <summary>
        /// 按数据库取得分页取得数据
        /// </summary>
        /// <param name="page">分页实体</param>
        /// <param name="columns">查询的列</param>
        /// <param name="tableSql">查询的表体</param>
        /// <param name="cond">查询的条件</param>
        /// <param name="DBName">数据库名称</param>
        /// <param name="totalRows">OUT->总数据行数</param>
        /// <returns>返回查询出来的数据以及输入总数据行数</returns>
        public static DataSet GetTableForPagination(Pagination page, string columns, string tableSql, string cond, DBConfigEnum DBName, out int totalRows)
        {
            int pageIndex = page.NowPage;
            int pageSize  = page.PageSize;

            totalRows = 0;
            if (string.IsNullOrWhiteSpace(page.Sort))
            {
                page.Sort     = DefaultSortStr;
                page.SortType = "";
            }
            else if (string.IsNullOrWhiteSpace(page.SortType))
            {
                page.SortType = " asc ";
            }
            if (string.IsNullOrWhiteSpace(columns) || string.IsNullOrWhiteSpace(tableSql))
            {
                throw new Exception("传入的列名与表名均不能为空");
            }
            string  sql      = $@"select * from (
	select ROW_NUMBER() OVER(order by {page.Sort} {page.SortType} ) rowid,{columns} from {tableSql} where 1=1 {cond}
) t where 1=1 and rowid between {((pageIndex - 1) * pageSize) + 1} and {pageIndex * pageSize}";
            string  countSql = $@"select Count(1) counts from (
	select {columns} from {tableSql} where 1=1 {cond}
) t ";
            DataSet ds       = ExecuteSql(sql, DBName);

            using (var conn = new DBConfig().InitConn(DBName.ToString())) {
                totalRows = conn.ExecuteScalar <int>(countSql);
            }
            return(ds);
        }
Пример #22
0
        public IHttpActionResult GetOrders(string custNo)
        {
            var odataCon = DBConfig.ODataObj();
            var items    = odataCon.Sales_Header.Where(c => c.Sell_to_Customer_No == custNo).ToList();

            return(Json(items));
        }
Пример #23
0
        public override string GetJsonOrHTML(DBConfig config, int page)
        {
            var cityName = JToken.Parse(config.Json)["cityname"].ToString();
            var sequence = JToken.Parse(config.Json)["sequence"]?.ToString();

            return(GetAPIResult(cityName, sequence));;
        }
Пример #24
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var houses   = new List <DBHouse>();
            var jsonData = JToken.Parse(data);

            if (jsonData?["content"] == null)
            {
                return(houses);
            }
            foreach (var houseItem in jsonData?["content"])
            {
                var house = new DBHouse();
                house.JsonData = houseItem.ToString();
                house.City     = config.City;
                house.Title    = houseItem["title"]?.ToString() + " " + houseItem["stressName"].ToString();
                house.Location = houseItem["address"]?.ToString();
                house.Text     = houseItem["description"]?.ToString();
                if (!string.IsNullOrEmpty(houseItem["location"]?.ToString()))
                {
                    var dstPos = houseItem["location"].ToObject <List <double> >();
                    house.Longitude = dstPos[0].ToString();
                    house.Latitude  = dstPos[1].ToString();
                }
                house.Id        = Tools.GetGuid();
                house.Price     = houseItem["price"].ToObject <int>();
                house.OnlineURL = $"http://m.xhj.com/zufangdetails/{houseItem["hsmid"]}/000.html";
                house.PubTime   = UnixTimeStampToDateTime(houseItem["refreshTime"].ToObject <long>());
                house.PicURLs   = JsonConvert.SerializeObject(houseItem["imgs"].ToList().Select(j => j["imgPath"]?.ToString()).ToList());
                house.Labels    = string.Join("|", houseItem["features"].ToObject <List <string> >());
                house.RentType  = GetRentType(houseItem["rentType"].ToString());
                house.Source    = SourceEnum.Xhj.GetSourceName();
                houses.Add(house);
            }
            return(houses);
        }
Пример #25
0
        public static long GetAllCount(SqlBaseItemXml basemodel, ref long sqlnum)
        {
            sqlnum = 0;
            long rownum = 0;
            List <TaskDataParam> taskdataparam = new List <TaskDataParam>();
            var databaselist = DBConfig.GetDatabaseXmlConfig(basemodel).SqlDatabaseList.Where(m => m.IsUse == true).ToList();

            foreach (var item in databaselist)
            {
                var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, item.ServerNumber);
                if (servermodel != null)
                {
                    TaskDataParam tempparam = new TaskDataParam();
                    tempparam.servername = servermodel.ServerName;
                    tempparam.dbtype     = servermodel.DBType;
                    tempparam.connstr    = GetConnStr(basemodel, servermodel, item);
                    tempparam.sqlstr     = "select  sum(b.rows) as 记录条数 from sysobjects a,sysindexes b where a.id=b.id and a.xtype='u' and b.indid=1 ";
                    taskdataparam.Add(tempparam);
                }
            }
            DBTask servicetask = new DBTask();

            rownum = servicetask.SyncThreadPoolManagerSum(taskdataparam, 100, false);
            sqlnum = servicetask.runnumcurrent;
            return(rownum);
        }
Пример #26
0
        public static void init()
        {
            string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);

            try
            {
                Console.WriteLine("\nBegin config initialization...");

                // Open the text file using a stream reader.
                using (StreamReader sr = new StreamReader(path + Path.DirectorySeparatorChar + "config.json"))
                {
                    // Read the stream to a string, and write the string to the console.
                    String       line         = sr.ReadToEnd();
                    CommonConfig commonConfig = JsonConvert.DeserializeObject <CommonConfig>(line);

                    db        = commonConfig.dbConfig;
                    logs      = commonConfig.logsConfig;
                    webServer = commonConfig.webServer;

                    Console.WriteLine("Config initialized successfully.");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("\nError on read \"config.json\", program can not by start:");
                Console.WriteLine(e.Message);

                LoggerService.writeError(e.Message, e.StackTrace);

                // Console app
                System.Environment.Exit(1);
            }
        }
Пример #27
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var houses = new List <DBHouse>();
            var result = JToken.Parse(data);

            if (result == null || result.Count() == 0 || result[0]["data"]?["requests"] == null)
            {
                return(houses);
            }
            foreach (var room in result[0]["data"]?["requests"])
            {
                var house = new DBHouse();
                house.Text     = room["description"]?.ToString();
                house.Title    = room["title"]?.ToString();
                house.City     = room["city"]?.ToString();
                house.Location = room["locationName"]?.ToString();
                if (room["location"] != null)
                {
                    house.Longitude = room["location"]?["longitude"]?.ToString();
                    house.Latitude  = room["location"]?["latitude"]?.ToString();
                }
                house.PubTime   = room["createTime"].ToObject <DateTime>();
                house.Price     = !string.IsNullOrEmpty(room["cost"]?.ToString()) ? room["cost"].ToObject <int>() : 0;
                house.PicURLs   = room["images"].ToString();
                house.Tags      = string.Join("|", room["tags"].Select(t => t.ToString()));
                house.OnlineURL = $"https://api.xiaozhuankeji.com/qrcode?product=roommate&page=RoommateRequest&id={room["id"].ToString()}";
                house.Id        = Tools.GetGuid();
                house.Source    = SourceEnum.Pinshiyou.GetSourceName();
                house.JsonData  = room.ToString();
                house.RentType  = GetRentType(room);
                houses.Add(house);
            }
            return(houses);
        }
Пример #28
0
        public override List <DBHouse> ParseHouses(DBConfig config, string data)
        {
            var houseList     = new List <DBHouse>();
            var resultJObject = JObject.Parse(data);

            if (resultJObject == null || resultJObject["head"] == null || !resultJObject["head"]["success"].ToObject <Boolean>())
            {
                return(houseList);
            }
            foreach (var item in resultJObject["houseList"])
            {
                DBHouse house = new DBHouse();
                house.Id = Tools.GetGuid();
                var houseDesc = item["houseDescript"].ToObject <string>().Replace("ЁЯШД", "");
                var houseURL  = $"http://www.huzhumaifang.com/Renting/house_detail/id/{item["houseId"]}.html";
                house.OnlineURL = houseURL;
                house.Title     = houseDesc;
                house.Location  = houseDesc;
                house.Text      = houseDesc;
                house.JsonData  = item.ToString();
                house.Price     = item["houseRentPrice"].ToObject <Int32>();
                house.City      = config.City;
                house.RentType  = GetRentType(houseDesc);
                house.PubTime   = item["houseCreateTime"].ToObject <DateTime>();
                house.PicURLs   = item["bigPicUrls"].ToString();
                house.Source    = SourceEnum.HuZhuZuFang.GetSourceName();
                houseList.Add(house);
            }
            return(houseList);
        }
Пример #29
0
        public override string GetJsonOrHTML(DBConfig config, int page)
        {
            var cityId   = JToken.Parse(config.Json)["cityID"].ToString();
            var resource = $"/house/list?city_id={cityId}&offset={page * 30}&limit=30";

            return(GetHouseResult(resource, cityId));
        }
Пример #30
0
        public override string GetJsonOrHTML(DBConfig config, int page)
        {
            var configJson = JToken.Parse(config.Json);
            var city       = WebUtility.UrlEncode(config.City);
            var fangPage   = page + 1;
            var client     = new RestClient("https://soufunappesf.3g.fang.com/http/sfservice.jsp?city=%E4%B8%8A%E6%B5%B7&gettype=android&housetype=jx&jkVersion=2&maptype=baidu&messagename=zflist&page=3&pagesize=20&purpose=%E4%BD%8F%E5%AE%85&subwayinfo=1&wirelesscode=AA4D0DFE6583C215AD7DBBC2BFAAD387");
            var request    = new RestRequest(Method.GET);

            request.AddHeader("host", "soufunappesf.3g.fang.com");
            request.AddHeader("posmode", "gps%2Cwifi");
            request.AddHeader("company", "31009");
            request.AddHeader("model", "MIX");
            request.AddHeader("x1", "121.466702");
            request.AddHeader("imei", "861413030535382");
            request.AddHeader("y1", "31.206607");
            request.AddHeader("ispos", "1");
            request.AddHeader("iscard", "1");
            request.AddHeader("osversion", "8.0.0");
            request.AddHeader("wirelesscheckcode", "af52bb5e052444b975d871d6c87512f6f8c9772b4754c6ba");
            request.AddHeader("connmode", "Wifi");
            request.AddHeader("app-name", "Android_UnMap");
            request.AddHeader("version", "8.7.0");
            request.AddHeader("networktype", "wifi");
            request.AddHeader("language", "zh_CN");
            request.AddHeader("user-agent", "Android_UnMap%7EMIX%7E8.0.0");
            request.AddHeader("city", "%E4%B8%8A%E6%B5%B7");
            request.AddHeader("shop-project", "fang-app-android");
            request.AddHeader("pagesc", "zflist");
            request.AddHeader("connection", "keep-alive");
            IRestResponse response = client.Execute(request);

            return(response.Content);
        }
Пример #31
0
 public static DBHandler GetHandler(DBConfig.MySQL.DatabaseConfig DBconfig)
 {
     if (_self == null)
     {
         _self = new DBHandler(DBconfig);
     }
     return _self;
 }
Пример #32
0
        public BotCredentials()
        {
            _log = LogManager.GetCurrentClassLogger();

            try { File.WriteAllText("./credentials_example.json", JsonConvert.SerializeObject(new CredentialsModel(), Formatting.Indented)); } catch { }
            if(!File.Exists(credsFileName))
                _log.Warn($"credentials.json is missing. Attempting to load creds from environment variables prefixed with 'NadekoBot_'. Example is in {Path.GetFullPath("./credentials_example.json")}");
            try
            {
                var configBuilder = new ConfigurationBuilder();
                configBuilder.AddJsonFile(credsFileName, true)
                    .AddEnvironmentVariables("NadekoBot_");

                var data = configBuilder.Build();

                Token = data[nameof(Token)];
                if (string.IsNullOrWhiteSpace(Token))
                    throw new ArgumentNullException(nameof(Token), "Token is missing from credentials.json or Environment varibles.");
                OwnerIds = data.GetSection("OwnerIds").GetChildren().Select(c => ulong.Parse(c.Value)).ToArray();
                LoLApiKey = data[nameof(LoLApiKey)];
                GoogleApiKey = data[nameof(GoogleApiKey)];
                MashapeKey = data[nameof(MashapeKey)];
                OsuApiKey = data[nameof(OsuApiKey)];

                int ts = 1;
                int.TryParse(data[nameof(TotalShards)], out ts);
                TotalShards = ts < 1 ? 1 : ts;

                ulong clId = 0;
                ulong.TryParse(data[nameof(ClientId)], out clId);
                ClientId = clId;

                SoundCloudClientId = data[nameof(SoundCloudClientId)];
                CarbonKey = data[nameof(CarbonKey)];
                var dbSection = data.GetSection("db");
                Db = new DBConfig(string.IsNullOrWhiteSpace(dbSection["Type"]) 
                                ? "sqlite" 
                                : dbSection["Type"], 
                            string.IsNullOrWhiteSpace(dbSection["ConnectionString"]) 
                                ? "Filename=./data/NadekoBot.db" 
                                : dbSection["ConnectionString"]);
            }
            catch (Exception ex)
            {
                _log.Fatal(ex.Message);
                _log.Fatal(ex);
                throw;
            }
            
        }
Пример #33
0
 private DBHandler(DBConfig.OLEDB.DatabaseConfig DBconfig)
 {
     DatabaseConfig = DBconfig;
 }
Пример #34
0
 private DBHandler(DBConfig.MySQL.DatabaseConfig DBconfig)
 {
     DatabaseConfig = DBconfig;
 }
Пример #35
0
        // Services requests for both setConfigString and setConfigInt.
        void setConfigInner( DBConfig config )
        {
            using( var token = _db.token() )
            using( var trans = _db.transaction( token ) )
            {
            config.checkpoint = getLatestCheckpoint( token );

            // Delete any existing one, and then insert the new value.
            _db.delete( token, config, new string[] { "name", "checkpoint" } );
            _db.insert( token, config );

            trans.commit();
            }
        }