diff options
| author | Omar Roth <omarroth@hotmail.com> | 2018-03-16 19:36:49 -0500 |
|---|---|---|
| committer | Omar Roth <omarroth@hotmail.com> | 2018-03-16 19:36:49 -0500 |
| commit | 997449ab4b11124d11e638294ea35a4018343148 (patch) | |
| tree | 7eea9301f6ab5d5b95f097be799f0b0d490884b8 /src/helpers.cr | |
| parent | dde7a643e93b99952e25b9dd48e26c2629bb393b (diff) | |
| download | invidious-997449ab4b11124d11e638294ea35a4018343148.tar.gz invidious-997449ab4b11124d11e638294ea35a4018343148.tar.bz2 invidious-997449ab4b11124d11e638294ea35a4018343148.zip | |
Add language detection for top videos
Diffstat (limited to 'src/helpers.cr')
| -rw-r--r-- | src/helpers.cr | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/helpers.cr b/src/helpers.cr index f6b1e52b..c54dfb22 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -24,7 +24,8 @@ class Config port: Int32, dbname: String, ), - redirect: Bool, + redirect: Bool, + dl_api_key: String | Nil, }) end @@ -229,7 +230,7 @@ def decrypt_signature(a) return a.join("") end -def rank_videos(db, n) +def rank_videos(db, n, pool, filter) top = [] of {Float64, String} db.query("SELECT id, wilson_score, published FROM videos WHERE views > 5000 ORDER BY published DESC LIMIT 10000") do |rs| @@ -250,8 +251,30 @@ def rank_videos(db, n) top.reverse! top = top.map { |a, b| b } - # Return top - return top[0..n - 1] + if filter + language_list = [] of String + top.each do |id| + if language_list.size == n + break + else + client = get_client(pool) + video = get_video(id, client, db) + pool << client + + description = XML.parse(video.description) + content = [video.title, description.content].join(" ") + + results = DetectLanguage.detect(content) + + if results[0].language == "en" + language_list << id + end + end + end + return language_list + else + return top[0..n - 1] + end end def make_client(url) |
