Exemple #1
0
 public Spider(string baseUrl, ISpiderRepository spiderRepository)
 {
     _spiderRepository = spiderRepository;
     SpiderData        = new SpiderData(baseUrl);
     DomainName        = baseUrl.GetDomainName();
     CreateDocument();
 }
Exemple #2
0
 void Start()
 {
     animator           = GetComponent <Animator>();
     movePlug           = new CorePlugMoveByDict(this, gameObject);
     movePlug.moveSpeed = _moveSpeed;
     _roleData          = data = new SpiderData();
     playerCtl          = player.GetComponent <PlayerControl>();
 }
Exemple #3
0
        private void CreateDocument()
        {
            var rootObject = Task.Run(() => _spiderRepository.GetAllAsync()).Result;
            var dados      = rootObject.rows.FirstOrDefault(d => d.doc.BaseUrl.GetDomainName() == SpiderData.BaseUrl.GetDomainName());

            if (dados == null)
            {
                Task.Run(async() => await _spiderRepository.CreateAsync(SpiderData)).Wait();
            }
            else
            {
                SpiderData.Update(dados.doc);
            }
        }
Exemple #4
0
        public async Task CreateAsync(SpiderData item)
        {
            using (var client = CloudantClient())
            {
                var response = await client.PostAsync(DbName, CreateJsonContent(item));

                if (response.IsSuccessStatusCode)
                {
                    var responseJson = await response.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <UpdateResult>(responseJson);
                    item.id  = result.id;
                    item.rev = result.rev;
                }
            }
        }
Exemple #5
0
        private void initializeConfiguration(string spiderName, InitializationParams init)
        {
            var dir = init?.SpiderDirectory;

            if (dir == null)
            {
                dir = new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location).Directory;
            }

            var spiderPath = new DirectoryInfo(Path.Combine(dir.FullName, spiderName));

            if (!spiderPath.Exists)
            {
                spiderPath.Create();
            }
            Configuration.SpiderDirectory = spiderPath;

            var dataPath = new DirectoryInfo(Path.Combine(spiderPath.FullName, "Data"));

            if (!dataPath.Exists)
            {
                dataPath.Create();
            }
            Configuration.SpiderDataDirectory = dataPath;

            spiderWorkDataPath = Path.Combine(dataPath.FullName, "privateData.xml");
            lock (lockDataPathObject)
            {
                SpiderWorkData = File.Exists(spiderWorkDataPath)
                                    ? SpiderWorkData = XmlSerializerHelper.DeserializeFromFile <SpiderData>(spiderWorkDataPath)
                                    : SpiderWorkData = new SpiderData();
            }

            if (Configuration.Logger == null)
            {
                Configuration.Spider_LogFile = Path.Combine(spiderPath.FullName, $"{ spiderName }.log");

                Configuration.Logger = new LoggerConfiguration()
                                       .MinimumLevel.Debug()
                                       .WriteTo.Console()
                                       .WriteTo.File(Configuration.Spider_LogFile, rollingInterval: RollingInterval.Day)
                                       .CreateLogger();
            }
        }
Exemple #6
0
        public async Task UpdateAsync(SpiderData item)
        {
            using (var client = CloudantClient())
            {
                var response = await client.PutAsync($"{DbName}/{HttpUtility.UrlEncode(item.id)}?rev={HttpUtility.UrlEncode(item.rev)}", CreateJsonContent(item));

                if (response.IsSuccessStatusCode)
                {
                    var responseJson = await response.Content.ReadAsStringAsync();

                    var responseReturn = JsonConvert.DeserializeObject <UpdateResult>(responseJson);

                    lock (item)
                    {
                        item.id  = responseReturn.id;
                        item.rev = responseReturn.rev;
                    }
                }
            }
        }
Exemple #7
0
        private void initializeConfiguration(string spiderName, InitializationParams init)
        {
            var dir = init?.SpiderDirectory;

            if (dir == null)
            {
                dir = new FileInfo(System.Reflection.Assembly.GetEntryAssembly().Location).Directory;
            }

            var spiderPath = new DirectoryInfo(Path.Combine(dir.FullName, spiderName));

            if (!spiderPath.Exists)
            {
                spiderPath.Create();
            }
            Configuration.SpiderDirectory = spiderPath;

            var dataPath = new DirectoryInfo(Path.Combine(spiderPath.FullName, "Data"));

            if (!dataPath.Exists)
            {
                dataPath.Create();
            }
            Configuration.SpiderDataDirectory = dataPath;

            spiderWorkDataPath = Path.Combine(dataPath.FullName, "privateData.xml");
            lock (lockDataPathObject)
            {
                SpiderWorkData = File.Exists(spiderWorkDataPath)
                                    ? SpiderWorkData = XmlSerializerHelper.DeserializeFromFile <SpiderData>(spiderWorkDataPath)
                                    : SpiderWorkData = new SpiderData();
            }

            if (Configuration.Logger == null)
            {
                initializeWithSerilog(spiderName, spiderPath);
            }
        }
Exemple #8
0
 public override void Start()
 {
     this.gameobject.GetComponent <Animator>().SetBool("run", true);
     data = this.gameobject.GetComponent <SpiderData>();
 }
Exemple #9
0
 public override void Start()
 {
     data = this.gameobject.GetComponent <SpiderData>();
 }
Exemple #10
0
 private static JsonContent CreateJsonContent(SpiderData item)
 {
     lock (item)
         return(new JsonContent(item));
 }