コード例 #1
0
        public async Task GetWikiData()
        {
            // Arrage
            WikiData result = new WikiData();

            result = await _service.GetWikiData("Jack Dorsey");

            Console.WriteLine(result);
            Assert.Pass();
        }
コード例 #2
0
ファイル: Index.razor.cs プロジェクト: alexan1/BlazorGame
        private async Task SearchPeople()
        {
            People = await WikiData.WikiPeopleSearch(_searchName);

            const string linkbase = "https://peoplerating.azurewebsites.net/api/rating/";

            foreach (var pers in People)
            {
                var link = linkbase + pers.Id.ToString();
                Console.WriteLine("link  " + link);
                var rating = await Http.GetJsonAsync <Components.Rating>(link);

                var averagerate = rating.AverageRate;
                Console.WriteLine("rating  " + averagerate);

                PeopleR.Add(new PersonR(pers, averagerate));
            }
        }
コード例 #3
0
 public DataResult(WikiData wikidata)
 {
     _wikidata = new WikiData();
     _wikidata = wikidata;
 }
コード例 #4
0
        /// <summary>
        /// put page/media
        /// </summary>
        private static byte[] _WikiPutFile(stDokuWiki.WikiEngine.WikiFile wiki, WikiFileType type, string namesspace, WikiFileMeta wfm = null)
        {
            WikiData wd = null;

            switch (namesspace.Contains(":"))
            {
            case true:
            {
                switch (type)
                {
                case WikiFileType.FileWriteMd:
                {
                    if (wfm == null)
                    {
                        throw new WikiErrorPageException(
                                  string.Format(
                                      "not write {0}, input data is empty",
                                      namesspace
                                      )
                                  );
                    }
                    wd = wiki.PutFile(namesspace, null, wfm);
                    break;
                }

                case WikiFileType.FileWriteBinary:
                {
                    wd = wiki.GetFile(namesspace);
                    break;
                }

                case WikiFileType.FileWriteAttic:
                {
                    throw new WikiNotImplementPageException(WikiFileType.FileWriteAttic.ToString());
                }

                case WikiFileType.FileWriteMeta:
                {
                    throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString());
                }

                default:
                case WikiFileType.FileReadMd:
                case WikiFileType.FileReadMeta:
                case WikiFileType.FileReadAttic:
                case WikiFileType.FileReadBinary:
                {
                    throw new WikiErrorPageException(
                              string.Format(
                                  "type set is read, not support for this version, name space: {0}",
                                  namesspace
                                  )
                              );
                }
                }
                break;
            }

            case false:
            {
                throw new WikiErrorPageException(
                          string.Format(
                              "not valid name space: {0}",
                              namesspace
                              )
                          );
            }
            }
            if (
                (wd == null) ||
                (wd.FileContent == null) ||
                (wd.FileContent.Length == 0)
                )
            {
                return(null);
            }
            return(wd.FileContent);
        }
コード例 #5
0
        /// <summary>
        /// get page/media
        /// </summary>
        private static byte[] _WikiGetFile(stDokuWiki.WikiEngine.WikiFile wiki, WikiFileType type, string namesspace)
        {
            WikiData wd = null;

            switch (namesspace.Contains(":"))
            {
            case true:
            {
                switch (type)
                {
                default:
                case WikiFileType.FileReadMd:
                case WikiFileType.FileWriteMd:
                {
                    wd = wiki.GetFile(namesspace);
                    break;
                }

                case WikiFileType.FileReadBinary:
                case WikiFileType.FileWriteBinary:
                {
                    wd = wiki.GetFile(namesspace);
                    break;
                }

                case WikiFileType.FileReadAttic:
                case WikiFileType.FileWriteAttic:
                {
                    wd = wiki.GetFileFromAttic(namesspace, "0");
                    break;
                }

                case WikiFileType.FileReadMeta:
                {
                    return(Encoding.UTF8.GetBytes(
                               wiki.MetaListToMdString(
                                   wiki.GetFileMeta(namesspace)
                                   )
                               ));
                }

                case WikiFileType.FileWriteMeta:
                {
                    throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString());
                }
                }
                break;
            }

            /// operation default
            case false:
            {
                switch (type)
                {
                default:
                case WikiFileType.FileReadMd:
                case WikiFileType.FileWriteMd:
                {
                    wd = wiki.GetFile(":start");
                    break;
                }

                case WikiFileType.FileReadBinary:
                case WikiFileType.FileWriteBinary:
                {
                    wd = wiki.GetFile(":logo.png");
                    break;
                }

                case WikiFileType.FileReadAttic:
                case WikiFileType.FileWriteAttic:
                {
                    // TODO: get last from attic
                    wd = wiki.GetFileFromAttic(":start", "0");
                    break;
                }

                case WikiFileType.FileReadMeta:
                {
                    throw new WikiNotImplementPageException(WikiFileType.FileReadMeta.ToString());
                }

                case WikiFileType.FileWriteMeta:
                {
                    throw new WikiNotImplementPageException(WikiFileType.FileWriteMeta.ToString());
                }
                }
                break;
            }
            }
            if (
                (wd == null) ||
                (wd.FileContent == null) ||
                (wd.FileContent.Length == 0)
                )
            {
                return(null);
            }
            return(wd.FileContent);
        }
コード例 #6
0
    public override async void OnInspectorGUI()
    {
        scriptableData = (WikiData)target;

        DrawDefaultInspector();
        // ---- save
        GUILayout.Label("Words count: " + scriptableData.Dict.Count);
        GUILayout.Label("Json File Path");
        scriptableData.savePath = GUILayout.TextField(scriptableData.savePath);
        if (GUILayout.Button("Save words(json)"))
        {
            SerrializeDict(scriptableData.savePath);
        }
        if (GUILayout.Button("Load words(json)"))
        {
            DeserrializeDict(scriptableData.savePath);
            scriptableData.searchResults = new string[0];
            scriptableData.selectedIndex = 0;
        }
        GUILayout.Label("Words File Path");
        scriptableData.savePathPlain = GUILayout.TextField(scriptableData.savePathPlain);
        if (GUILayout.Button("Save words(txt)"))
        {
            SaveWordsAsPlainText(scriptableData.savePathPlain);
        }

        // ---- parse
        GUILayout.Label(scriptableData.progress);
        GUILayout.Label("Url");
        scriptableData.categoryUrl = GUILayout.TextField(scriptableData.categoryUrl);
        bool parse = GUILayout.Button("Parse");

        if (GUILayout.Button("Stop"))
        {
            MediaWikiUtils.run = false;
        }
        // ---- search
        GUILayout.Label("Search");
        scriptableData.searchStartWith = GUILayout.Toggle(scriptableData.searchStartWith, "Start With");
        scriptableData.searchWord      = GUILayout.TextField(scriptableData.searchWord);

        if (GUILayout.Button("Search"))
        {
            if (scriptableData.searchStartWith)
            {
                var keys = from x in scriptableData.Dict
                           where x.Key.StartsWith(scriptableData.searchWord)
                           select x.Key;
                scriptableData.searchResults = keys.ToArray();
                Debug.Log(scriptableData.searchResults.Length);
            }

            if (!scriptableData.searchStartWith)
            {
                scriptableData.searchResults = new string[0];
                scriptableData.selectedIndex = 0;
                if (scriptableData.Dict.ContainsKey(scriptableData.searchWord))
                {
                    var data = scriptableData.Dict[scriptableData.searchWord];
                    scriptableData.searchResult = WordFormat(data);
                }
                else
                {
                    scriptableData.searchResult = "Not found";
                }
            }
        }
        GUILayout.TextArea(scriptableData.searchResult, GUILayout.Height(230));
        scriptableData.selectedIndex = GUILayout.SelectionGrid(scriptableData.selectedIndex, scriptableData.searchResults, 1);
        if (scriptableData.searchResults.Length > 0)
        {
            try
            {
                string word = scriptableData.searchResults[scriptableData.selectedIndex];
                if (scriptableData.Dict.ContainsKey(word))
                {
                    scriptableData.searchResult = WordFormat(scriptableData.Dict[word]);
                }
            }
            catch (Exception)
            {
                Debug.Log(scriptableData.selectedIndex);
            }
        }


        // ---- async
        if (parse)
        {
            if (MediaWikiUtils.run)
            {
                return;
            }
            MediaWikiUtils.run = true;
            string url      = HttpUtility.UrlDecode(scriptableData.categoryUrl);
            string category = url.Substring(url.LastIndexOf(":") + 1);
            Debug.Log(category);
            var pages = await Task.Run(() => MediaWikiUtils.ParseCategory(category, ref scriptableData.progress, scriptableData.WordFilter));

            var dict = await Task.Run(() => MediaWikiUtils.ParsePages(pages, ref scriptableData.progress, scriptableData.PageFilter));

            dict.ToList().ForEach(x =>
            {
                if (!scriptableData.Dict.ContainsKey(x.Key))
                {
                    scriptableData.Dict.Add(x.Key, x.Value);
                }
            }
                                  );
        }
    }