#445 FixTransilerations
This commit is contained in:
parent
6c96ac37d9
commit
13c77cd48f
@ -19320,6 +19320,11 @@
|
||||
transilerate verse data from Persian to Tajiki
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.FixTransilerations">
|
||||
<summary>
|
||||
one time fix for transilerations
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:RMuseum.Services.Implementation.GanjoorService.GetPoets(System.Boolean,System.Boolean)">
|
||||
<summary>
|
||||
Get List of poets
|
||||
|
||||
@ -7,6 +7,7 @@ using System.Collections.Generic;
|
||||
using RSecurityBackend.Services.Implementation;
|
||||
using RMuseum.Utils;
|
||||
using RMuseum.Models.Ganjoor;
|
||||
using NAudio.Gui;
|
||||
|
||||
namespace RMuseum.Services.Implementation
|
||||
{
|
||||
@ -115,7 +116,67 @@ namespace RMuseum.Services.Implementation
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// one time fix for transilerations
|
||||
/// </summary>
|
||||
public void FixTransilerations()
|
||||
{
|
||||
_backgroundTaskQueue.QueueBackgroundWorkItem
|
||||
(
|
||||
async token =>
|
||||
{
|
||||
using (RMuseumDbContext context = new RMuseumDbContext(new DbContextOptions<RMuseumDbContext>())) //this is long running job, so _context might be already been freed/collected by GC
|
||||
{
|
||||
LongRunningJobProgressServiceEF jobProgressServiceEF = new LongRunningJobProgressServiceEF(context);
|
||||
var job = (await jobProgressServiceEF.NewJob($"FixTransilerations", "Query data")).Result;
|
||||
try
|
||||
{
|
||||
|
||||
var poets = await context.TajikPoets.ToListAsync();
|
||||
foreach (var poet in poets)
|
||||
{
|
||||
poet.TajikNickname = LanguageUtils.CleanTextForTransileration(poet.TajikNickname);
|
||||
poet.TajikDescription = LanguageUtils.CleanTextForTransileration(poet.TajikDescription);
|
||||
context.Update(poet);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
var cats = await context.TajikCats.ToListAsync();
|
||||
foreach (var cat in cats)
|
||||
{
|
||||
cat.TajikTitle = LanguageUtils.CleanTextForTransileration(cat.TajikTitle);
|
||||
cat.TajikDescription = LanguageUtils.CleanTextForTransileration(cat.TajikTitle);
|
||||
context.Update(cat);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
var poems = await context.TajikPoems.ToListAsync();
|
||||
foreach(var poem in poems)
|
||||
{
|
||||
poem.TajikTitle = LanguageUtils.CleanTextForTransileration(poem.TajikTitle);
|
||||
context.Update(poem);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
var verses = await context.TajikVerses.ToListAsync();
|
||||
foreach (var verse in verses)
|
||||
{
|
||||
verse.TajikText = LanguageUtils.CleanTextForTransileration(verse.TajikText);
|
||||
context.Update(verse);
|
||||
await context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 100, "", true);
|
||||
}
|
||||
catch (Exception exp)
|
||||
{
|
||||
await jobProgressServiceEF.UpdateJob(job.Id, 100, "", false, exp.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -76,6 +76,22 @@ namespace RMuseum.Services.Implementation
|
||||
;
|
||||
}
|
||||
|
||||
public static string CleanTextForTransileration(string text)
|
||||
{
|
||||
return text.Replace("", " ")//replace zwnj with space
|
||||
.Replace("ّ", "")//tashdid
|
||||
.Replace("َ", "")//a
|
||||
.Replace("ِ", "")//e
|
||||
.Replace("ُ", "")//o
|
||||
.Replace("ً", "")//an
|
||||
.Replace("ٍ", "")//en
|
||||
.Replace("ٌ", "")//on
|
||||
.Replace("ٔ", "")//ye
|
||||
.Replace("ْ", "")//sokoon
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
public static string SameSoundLetters(string text)
|
||||
{
|
||||
return text.Replace("آ", "ا").Replace("ث", "س").Replace("ح", "ه").Replace("ذ", "ز").Replace("ص", "س").Replace("ض", "ز").Replace("ط", "ت").Replace("ظ", "ز").Replace("غ", "ق");
|
||||
|
||||
@ -10,7 +10,7 @@ namespace RMuseum.Utils
|
||||
{
|
||||
public static string Transilerate(string input, string formDataForHassan)
|
||||
{
|
||||
input = LanguageUtils.MakeTextSearchable(input);
|
||||
input = LanguageUtils.CleanTextForTransileration(input);
|
||||
formDataForHassan = formDataForHassan.Replace("%D8%AD%D8%B3%D9%86", HttpUtility.UrlEncode(input));
|
||||
|
||||
HttpWebRequest request = HttpWebRequest.Create("http://persian-tajik.ir/farsitotajiki.aspx") as HttpWebRequest;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user