Beispiel #1
0
        private static NameExchange ByteLengthFitter(NameExchange nameExchange)
        {
            nameExchange.ReferenceName = nameExchange.ReferenceName.Replace(" ", "");
            if (nameExchange.Check)
            {
                switch (nameExchange.ReferenceNameWordList.Count)
                {
                case 1:
                    nameExchange.ReferenceName = nameExchange.ReferenceNameWordList[0]
                                                 .Substring(0, nameExchange.OriginalNameLength);
                    break;

                case 2:
                    nameExchange.ReferenceName = nameExchange.ReferenceNameWordList[1];
                    if (nameExchange.Check)
                    {
                        nameExchange.ReferenceName =
                            nameExchange.ReferenceName.Substring(0, nameExchange.OriginalNameLength);
                    }
                    break;
                }
            }

            return(nameExchange);
        }
        public static NameExchange OriginalToReference(string wikia, NameExchange name)
        {
            var wikiaResult = WikiaCSharpWrapper.Client.RequestValuesFromWiki(wikia, name.OriginalName, false);

            if (wikiaResult.Result != null)
            {
                foreach (var item in wikiaResult.Result.items)
                {
                    var matches = regExSpanMatcher.Matches(item.snippet);

                    var tempMatchVariable = string.Empty;
                    foreach (Match match in matches)
                    {
                        if (tempMatchVariable != string.Empty)
                        {
                            tempMatchVariable = tempMatchVariable + " ";
                        }
                        tempMatchVariable = tempMatchVariable + match.Value.Split('<')[0];
                    }

                    var entryCount = name.OriginalName.Split(' ').Length;

                    if (matches.Count == entryCount && tempMatchVariable == name.OriginalName)
                    {
                        name.ReferenceName         = item.title;
                        name.ReferenceNameWordList = name.ReferenceName.Split(' ').ToList();
                        break;
                    }
                }
            }

            return(name);
        }
Beispiel #3
0
        public static Task <List <NameExchange> > CsvFile(string filename)
        {
            List <NameExchange> list = new List <NameExchange>();
            string content           = string.Empty;

            using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read))
            {
                TextReader tr = new StreamReader(fs, Encoding.ASCII);
                content = tr.ReadToEnd();
                tr.Dispose();
            }

            string[] contentArray = content.Split(new string[] { "\r\n" }, StringSplitOptions.None);

            foreach (var item in contentArray)
            {
                string[] itemArray = item.Split(';');
                var      name      = new NameExchange()
                {
                    Encoding      = Encoding.ASCII,
                    OriginalName  = itemArray.First(),
                    ReferenceName = itemArray.Last()
                };
                list.Add(name);
            }

            return(Task.FromResult(list));
        }
Beispiel #4
0
        public static void NameExchangeList(List <Entry> entries, string filename)
        {
            List <NameExchange> list = new List <NameExchange>();

            foreach (var entry in entries)
            {
                var name = new NameExchange()
                {
                    Encoding      = Encoding.Unicode,
                    OriginalName  = entry.OriginalText,
                    ReferenceName = entry.EditedText
                };
                list.Add(name);
            }

            NameExchangeList(list, $"{filename.Trim()}.csv");
        }
Beispiel #5
0
        public static async Task ToReferenceNames(string sourceFile, string targetFile, string wikia, int from, int to, bool recursiveCheck, bool matchByteLength)
        {
            Settings.LogTime = DateTime.Now;
            IO.Write.Log($"SourceFilepath: {sourceFile}", true);
            IO.Write.Log($"TargetFilePath: {targetFile}", true);
            IO.Write.Log($"Wikia: {wikia}", true);
            IO.Write.Log($"Recursive Check: {recursiveCheck}", true);
            IO.Write.Log($"Match ByteLength: {matchByteLength}", true);


            IO.Write.Log("Loading KUP file", true);
            var kup = Kontract.KUP.Load(sourceFile);

            int kupEntryCount = kup.Count;

            if (from == -1)
            {
                from = 0;
            }
            if (to == -1)
            {
                to = kupEntryCount;
            }

            IO.Write.Log($"From Count: {from}", true);
            IO.Write.Log($"To Count: {to}", true);


            var entries = kup.Entries.Where(x =>
                                            Convert.ToInt32(x.Name.Remove(0, 4)) >= from && Convert.ToInt32(x.Name.Remove(0, 4)) <= to).ToList();

            IO.Write.Log("Begin translation", true);
            List <NameExchange> NameExchangeList = new List <NameExchange>();

            foreach (var entry in entries)
            {
                NameExchange nameExchange = new NameExchange();

                nameExchange.Encoding             = Encoding.ASCII;
                nameExchange.KupReference         = entry.Name;
                nameExchange.OriginalName         = entry.OriginalText;
                nameExchange.OriginalNameWordList = nameExchange.OriginalName.Split(' ').ToList();

                if (recursiveCheck)
                {
                    var preCheck = NameExchangeList.FirstOrDefault(x =>
                                                                   x.OriginalNameWordList.Contains(entry.OriginalText) && x.ReferenceName != null);

                    if (preCheck != null)
                    {
                        if (nameExchange.OriginalNameWordList.Count == 1)
                        {
                            nameExchange.ReferenceName = (nameExchange.OriginalNameWordList.Count == 1)
                                ? preCheck.ReferenceNameWordList[preCheck.ReferenceNameWordList.Count - 1]
                                : preCheck.ReferenceName;
                            nameExchange.ReferenceNameWordList = nameExchange.ReferenceName.Split(' ').ToList();
                        }
                    }

                    else
                    {
                        Translate.OriginalToReference(wikia, nameExchange);
                    }
                }

                else
                {
                    Translate.OriginalToReference(wikia, nameExchange);
                }

                if (matchByteLength && nameExchange.ReferenceName != null)
                {
                    ByteLengthFitter(nameExchange);
                }

                IO.Write.Log($"{nameExchange.OriginalName} => {nameExchange.ReferenceName}");

                NameExchangeList.Add(nameExchange);
            }

            await Task.Run(() => Shared.IO.Write.NameExchangeList(NameExchangeList, targetFile));
        }