示例#1
0
 protected ListSourceBase(WikiInfo wiki, string parameterName, IEnumerable <string> values)
     : base(new QueryPageProcessor(wiki))
 {
     m_parameterName = parameterName;
     m_values        = values;
     m_pageSize      = wiki.PagesSourcePageSize;
 }
    IEnumerator Start()
    {
        initRotation   = transform.rotation;
        BeginningScale = transform.localScale;
        molRigidBody   = GetComponent <Rigidbody>();
        molRigidBody.maxAngularVelocity = 15;

        InvokeRepeating("ReduceAngularAndVelocity", 0, 1.0f);

        InvokeRepeating("ResetCollision", 0.5f, 0.5f);

        CalculateShaderWidthWithDistance();

        string query = wikiAPITemplateQuery.Replace("MOLNAME", moleculeName);

        using (WWW wikiReq = new WWW(query))
        {
            yield return(wikiReq);

            WikiInfo wikiObj = JsonConvert.DeserializeObject <WikiInfo>(wikiReq.text);

            if (wikiObj.type != "https://mediawiki.org/wiki/HyperSwitch/errors/not_found")
            {
                if (string.IsNullOrEmpty(moleculeInfo))
                {
                    moleculeInfo = wikiObj.extract;
                }

                using (WWW www = new WWW(wikiObj.thumbnail.source))
                {
                    /// Wait for download to complete
                    yield return(www);

                    /// assign texture

                    if (molImage == null)
                    {
                        molImage = Sprite.Create(www.texture, new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0, 0));
                    }
                }
            }
        }
    }
示例#3
0
        public ModulesSource(WikiInfo wiki, string propsDefaultsPath = null)
        {
            Dictionary <string, XElement> propsDefaults = null;

            if (propsDefaultsPath != null)
            {
                propsDefaults =
                    XDocument.Load(propsDefaultsPath).Root.Elements().ToDictionary(e => (string)e.Attribute("name"));
            }

            m_processor = new QueryProcessor <ParamInfo>(
                wiki,
                new QueryTypeProperties <ParamInfo>(
                    "paraminfo", "", null, null,
                    new TupleList <string, string> {
                { "action", "paraminfo" }
            },
                    null,
                    e => ParamInfo.Parse(e, propsDefaults)));
        }
示例#4
0
        public async Task <WikiInfo> GetWikiPageAsync(string address)
        {
            //готовим результат
            var result = new WikiInfo();

            result.Header = "Не удалось загрузить данные по этому адресу.";

            //проверяем запрашиваемый адрес
            if (String.IsNullOrEmpty(address))
            {
                return(result);
            }

            //конфигурация для загрузки
            var config = Configuration.Default.WithDefaultLoader();

            try
            {
                //асинхронно загружаем страницу
                var document = await BrowsingContext.New(config).OpenAsync(address);

                //--Заголовок
                var cellSelector = @"h1#section_0";
                var cell         = document.QuerySelector(cellSelector);
                result.Header = cell.TextContent;

                //--Параграфы
                cellSelector = @"main#content p";
                var cells = document.QuerySelectorAll(cellSelector);
                var pars  = cells.Select(m => m.TextContent);
                result.Paragraphs.AddRange(pars);
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"Ошибка загрузки данных: {ex.Message}");
            }

            return(result);
        }
示例#5
0
        public Task <WikiInfo> GetWikiPageAsync(string address)
        {
            //готовим результат
            var result = new WikiInfo();

            result.Header = "Не удалось загрузить данные по этому адресу.";

            //проверяем запрашиваемый адрес
            if (String.IsNullOrEmpty(address))
            {
                return(Task.FromResult(result));
            }

            //тестовый результат
            result.Header = "Тестовые данные";
            result.Paragraphs.Add("Тестовый параграф 1");
            result.Paragraphs.Add("Тестовый параграф 2");
            result.Paragraphs.Add("Тестовый параграф 3");

            //отдаем тестовый результат
            return(Task.FromResult(result));
        }
    // Use this for initialization
    IEnumerator Start()
    {
        moleculeName = transform.name.Replace("(Clone)", string.Empty);
        string query = wikiAPITemplateQuery.Replace("MOLNAME", moleculeName);

        using (WWW wikiReq = new WWW(query))
        {
            yield return(wikiReq);

            WikiInfo wikiObj = JsonConvert.DeserializeObject <WikiInfo>(wikiReq.text);
            moleculeInfo = wikiObj.extract;

            using (WWW www = new WWW(wikiObj.thumbnail.source))
            {
                // Wait for download to complete
                yield return(www);

                // assign texture

                molImage = Sprite.Create(www.texture, new Rect(0, 0, www.texture.width, www.texture.height), new Vector2(0, 0));
            }
        }
    }
示例#7
0
 public PageIdsSource(WikiInfo wiki, IEnumerable <long> pageIds)
     : base(wiki, "pageids", pageIds.Select(id => id.ToQueryString()))
 {
 }
示例#8
0
 internal QueryAction(WikiInfo wiki)
 {
     m_wiki = wiki;
 }
示例#9
0
 public TitlesSource(WikiInfo wiki, IEnumerable <string> titles)
     : base(wiki, "titles", titles)
 {
 }
示例#10
0
 public Downloader(WikiInfo wiki)
 {
     m_wiki = wiki;
 }
示例#11
0
        public Wiki(string baseUri = null, string apiPath = null)
        {
            m_info = new WikiInfo(baseUri, apiPath);

            Query = new QueryAction(m_info);
        }
示例#12
0
 public RevIdsSource(WikiInfo wiki, IEnumerable <long> revIds)
     : base(wiki, "revids", revIds.Select(id => id.ToQueryString()))
 {
 }