Adds links to Search Sources and Manage Machines, and partition command to ArcTool, a=chris

Chris Pollett [2021-09-10 00:Sep:th]
Adds links to Search Sources and Manage Machines, and partition command to ArcTool, a=chris
Filename
src/executables/ArcTool.php
src/library/IndexDocumentBundle.php
src/locale/ar/configure.ini
src/locale/ar/statistics.txt
src/locale/bn/configure.ini
src/locale/bn/statistics.txt
src/locale/de/configure.ini
src/locale/de/statistics.txt
src/locale/en_US/configure.ini
src/locale/es/configure.ini
src/locale/es/statistics.txt
src/locale/fa/configure.ini
src/locale/fa/statistics.txt
src/locale/fr_FR/configure.ini
src/locale/fr_FR/statistics.txt
src/locale/he/configure.ini
src/locale/he/statistics.txt
src/locale/hi/configure.ini
src/locale/hi/statistics.txt
src/locale/id/configure.ini
src/locale/id/statistics.txt
src/locale/it/configure.ini
src/locale/it/statistics.txt
src/locale/ja/configure.ini
src/locale/ja/statistics.txt
src/locale/kn/configure.ini
src/locale/kn/statistics.txt
src/locale/ko/configure.ini
src/locale/ko/statistics.txt
src/locale/nl/configure.ini
src/locale/nl/statistics.txt
src/locale/pl/configure.ini
src/locale/pl/statistics.txt
src/locale/pt/configure.ini
src/locale/pt/statistics.txt
src/locale/ru/configure.ini
src/locale/ru/statistics.txt
src/locale/te/configure.ini
src/locale/te/statistics.txt
src/locale/th/configure.ini
src/locale/th/statistics.txt
src/locale/tl/configure.ini
src/locale/tl/statistics.txt
src/locale/tr/configure.ini
src/locale/tr/statistics.txt
src/locale/vi_VN/configure.ini
src/locale/vi_VN/statistics.txt
src/locale/zh_CN/configure.ini
src/locale/zh_CN/statistics.txt
src/views/MachinestatusView.php
src/views/elements/SearchsourcesElement.php
diff --git a/src/executables/ArcTool.php b/src/executables/ArcTool.php
index 97cb2de73..6e5b4c0a9 100755
--- a/src/executables/ArcTool.php
+++ b/src/executables/ArcTool.php
@@ -107,7 +107,7 @@ class ArcTool implements CrawlConstants
         global $argv;
         if (!isset($argv[1]) || (!isset($argv[2]) && $argv[1] != "list") ||
             (!isset($argv[3]) && in_array($argv[1],
-            ["dict", "inject", "make-filter", "posting"] ) ) ) {
+            ["dict", "inject", "make-filter"] ) ) ) {
             $this->usageMessageAndExit();
         }
         if (!in_array($argv[1], [ "check-filter", "make-filter", "list"])) {
@@ -169,10 +169,6 @@ class ArcTool implements CrawlConstants
             case "partition":
                 $this->outputPartitionInfo($path, $argv[3]);
                 break;
-            case "posting":
-                $num = (isset($argv[5])) ? $argv[5] : 1;
-                $this->outputPostingInfo($path, $argv[3], $argv[4], $num);
-                break;
             case "rebuild":
                 if (!isset($argv[3])) {
                     $argv[3] = 0;
@@ -335,9 +331,9 @@ class ArcTool implements CrawlConstants
      *
      * @param string $archive_path the path of a directory that holds
      *     an IndexArchiveBundle
-     * @param int $index of partition to show info for
+     * @param int $num of partition to show info for
      */
-    public function outputPartitionInfo($archive_path, $index)
+    public function outputPartitionInfo($archive_path, $num)
     {
         if (preg_match("/\-\d$/", $archive_path)) {
             $bundle_num = substr($archive_path, -1);
@@ -348,7 +344,7 @@ class ArcTool implements CrawlConstants
         $archive_type = $this->getArchiveKind($archive_path);
         echo "Bundle Type: $archive_type\n";
         if (!in_array($archive_type, ["FeedArchiveBundle",
-            "DoubleIndexBundle", "IndexArchiveBundle",])) {
+            "DoubleIndexBundle", "IndexDocumentBundle",])) {
             $this->badFormatMessageAndExit($archive_path, "index");
         }
         preg_match("/\d+$/", $archive_path, $matches);
@@ -362,35 +358,34 @@ class ArcTool implements CrawlConstants
         $partition_bundle = $index->documents;
         $num_partitions = $partition_bundle->parameters["SAVE_PARTITION"] ?? -1;
         $num_partitions++;
-        exit();
-        $partition = $partition_bundle->loadPartitionIndex($i);
         echo "Number of Partitions: $num_partitions\n";
-        echo "\nInformation for Partition $index\n";
+        echo "\nInformation for Partition $num\n";
         echo "====================================\n";
         $_SERVER["NO_LOGGING"] = true;
-        $shard = $index->getCurrentShard(true);
+        $partition = $partition_bundle->loadPartitionIndex($num);
         if (!$partition) {
-            echo "Parition $index does not exists\n";
+            echo "Partition $num does not exists\n";
             return;
         }
-        echo "Number of Distinct Terms Indexed: " . count($shard->words)."\n";
-        echo "Number of Docs in Shard: " . $shard->num_docs."\n";
-        echo "Number of Link Items in Shard: ".$shard->num_link_docs."\n";
-        echo "Total Links and Docs: ".($shard->num_docs +
-            $shard->num_link_docs)."\n\n";
+        $statistics =
+            $index->buildInvertedIndexPartition($num, null, true);
+        echo "Number of Distinct Terms Indexed: " .
+            count($statistics['TERM_STATISTICS'])."\n";
+        echo "Number of Docs in Shard: " . $statistics['NUM_DOCS'] ."\n";
+        echo "Number of Link Items in Shard: ".$statistics['NUM_LINKS']."\n";
+        echo "Total Links and Docs: ".($statistics['NUM_DOCS'] +
+            $statistics['NUM_LINKS'])."\n\n";
         echo "Term histogram for shard\n";
         echo "------------------------\n";
-        $word_string_lens = [];
-        foreach ($shard->words as $word => $posting) {
-            $word_string_lens[] = intval(ceil(strlen($posting)/4));
-        }
-        $word_string_lens = array_count_values($word_string_lens);
-        krsort($word_string_lens);
+        $term_frequencies = $statistics['TERM_STATISTICS'];
+        arsort($term_frequencies);
         $i = 1;
-        echo "Freq Rank\t# Terms with Rank\t# Docs Term Appears In\n";
-        foreach ($word_string_lens as $num_docs => $num_terms) {
-            echo "$i\t\t\t$num_terms\t\t\t$num_docs\n";
-            $i += $num_terms;
+        echo "Freq Rank\t# Term\t# Docs Term Appears In\n";
+        foreach ($term_frequencies as $term => $num_docs) {
+            $term = rtrim($term, '_');
+            $term = str_replace("3A", ":", $term);
+            echo "$i\t\t\t$term\t\t\t$num_docs\n";
+            $i ++;
         }
     }
     /**
@@ -468,125 +463,6 @@ class ArcTool implements CrawlConstants
             echo "..done\n";
         }
     }
-
-    /**
-     * Prints information about $num many postings beginning at the
-     * provided $generation and $offset
-     *
-     * @param string $archive_path the path of a directory that holds
-     *     an IndexArchiveBundle
-     * @param int $generation which index shard to use
-     * @param int $offset offset into posting lists for that shard
-     * @param int $num how many postings to print info for
-     */
-    public function outputPostingInfo($archive_path, $generation, $offset,
-        $num = 1)
-    {
-        $bundle_num = -1;
-        if (preg_match("/\-\d$/", $archive_path)) {
-            $bundle_num = substr($archive_path, -1);
-            $archive_path = substr($archive_path, 0, -2);
-        }
-        $bundle_name = $this->getArchiveName($archive_path);
-        echo "\nBundle Name: $bundle_name\n";
-        $archive_type = $this->getArchiveKind($archive_path);
-        echo "Bundle Type: $archive_type\n";
-        echo "Generation: $generation\n";
-        echo "Offset: $offset\n";
-        if (!in_array($archive_type, ["FeedArchiveBundle",
-            "DoubleIndexBundle", "IndexArchiveBundle",])) {
-            $this->badFormatMessageAndExit($archive_path, "index");
-        }
-        preg_match("/\d+$/", $archive_path, $matches);
-        $index_timestamp = (isset($matches[0])) ? $matches[0] : 0;
-        if (isset($bundle_num) && $bundle_num >= 0) {
-            $index_timestamp .= "-$bundle_num";
-        } else if ($bundle_name == "IndexDataFeed") {
-            $index_timestamp = "feed";
-        }
-        $index = IndexManager::getIndex($index_timestamp);
-        $index->setCurrentShard($generation, true);
-        $shard = $index->getCurrentShard();
-        $next = $offset >> 2;
-        $raw_postings = [];
-        $doc_indexes = [];
-        $documents = [];
-        for ($i = 0; $i < $num; $i++) {
-            $dummy_offset = 0;
-            $posting_start = $next;
-            $posting_end = $next;
-            $old_offset = $next << 2;
-            $old_start = $next << 2;
-            $old_end = $next << 2;
-            $tmp = $shard->getPostingAtOffset(
-                $next, $posting_start, $posting_end);
-            $next = $posting_end + 1;
-            if (!$tmp) {
-                break;
-            }
-
-            $documents = array_merge($documents, $shard->getPostingsSlice(
-                $old_offset, $old_start, $old_end, 1));
-            $raw_postings[] = $tmp;
-            $post_array = L\unpackPosting($tmp, $dummy_offset);
-            $doc_indexes[] = $post_array[0];
-        }
-        $end_offset = $next << 2;
-        echo "Offset After Returned Results: $end_offset\n\n";
-        if (!$documents || ($count = count($documents)) < 1) {
-            echo "No documents correspond to generation and offset given\n\n";
-            exit();
-        };
-        $document_word = ($count == 1) ? "Document" : "Documents";
-        echo "$count $document_word Found:\n";
-        echo str_pad("", $count + 1, "=") . "================\n";
-        $j = 0;
-        foreach ($documents as $key => $document) {
-            echo "\nDOC ID: " . L\toHexString($key);
-            echo "\nTYPE: ".  (($document[self::IS_DOC]) ? "Document" : "Link");
-            echo "\nDOC INDEX: " . $doc_indexes[$j];
-            $summary_offset = $document[self::SUMMARY_OFFSET];
-            echo "\nSUMMARY OFFSET: " . $summary_offset;
-            echo "\nSCORE: " . $document[self::SCORE];
-            echo "\nDOC RANK: " . $document[self::DOC_RANK];
-            echo "\nRELEVANCE: " . $document[self::RELEVANCE];
-            echo "\nPROXIMITY: " . $document[self::PROXIMITY];
-            echo "\nHEX POSTING:\n";
-            echo "------------\n";
-            echo wordwrap(L\toHexString($raw_postings[$j]), 80);
-            if (isset($document[self::POSITION_LIST])) {
-                echo "\nTERM OCCURRENCES IN DOCUMENT (Count starts at title):";
-                echo "\n-------------------------".
-                    "----------------------------\n";
-                $i = 0;
-                foreach ($document[self::POSITION_LIST] as $position) {
-                    printf("%09d ",$position);
-                    $i++;
-                    if ($i >= 5) {
-                        echo "\n";
-                        $i = 0;
-                    }
-                }
-                if ($i != 0) {
-                    echo "\n";
-                }
-            }
-            $page = @$index->getPage($summary_offset);
-
-            if (isset($page[self::TITLE])) {
-                echo "SUMMARY TITLE:\n";
-                echo "--------------\n";
-                echo wordwrap($page[self::TITLE], 80) . "\n";
-            }
-
-            if (isset($page[self::DESCRIPTION])) {
-                echo "SUMMARY DESCRIPTION:\n";
-                echo "--------------\n";
-                echo $page[self::DESCRIPTION] . "\n";
-                }
-            $j++;
-        }
-    }
     /**
      * Given a complete path to an archive returns its filename
      *
@@ -1348,14 +1224,6 @@ php ArcTool.php make-filter dict_file filter_file column_num
        will be inserted from.
      */

-php ArcTool.php posting bundle_name generation offset
-php ArcTool.php posting double_index_name which_bundle generation offset
-    or
-php ArcTool.php posting bundle_name generation offset num
-php ArcTool.php posting double_index_name which_bundle generation offset num
-    /* returns info about the posting (num many postings) in bundle_name at
-       the given generation and offset */
-
 php ArcTool.php migrate bundle_name
     /* migrates old Yioop index formats such as FeedArchiveBundle,
        IndexArchiveBundle, and old style DoubleIndexBundle to their
diff --git a/src/library/IndexDocumentBundle.php b/src/library/IndexDocumentBundle.php
index e77fa574a..45b1011d0 100644
--- a/src/library/IndexDocumentBundle.php
+++ b/src/library/IndexDocumentBundle.php
@@ -376,9 +376,11 @@ class IndexDocumentBundle implements CrawlConstants
      * partition.
      * @param int $partition to build index for
      * @param string $taking_too_long_touch
+     * @param bool whether to just compute stats on the inverted or to actually
+     *      save the results
      */
     public function buildInvertedIndexPartition($partition = -1,
-        $taking_too_long_touch = null)
+        $taking_too_long_touch = null, $just_stats = false)
     {
         $start_time = microtime(true);
         crawlLog("  Start building inverted index ...  Current Memory:".
@@ -415,10 +417,11 @@ class IndexDocumentBundle implements CrawlConstants
             count($index_map));
         $cnt = 0;
         $non_aux_doc_cnt = 0;
+        $link_cnt = 0;
         $num_partition = count($index_map);
-        $total_num_words = 0;
         foreach ($index_map as $hash_url => $url_info) {
             $site = [];
+            $non_aux_doc_cnt++;
             if (!empty($url_info['doc'])) {
                 $site = $this->getSummary($url_info['doc'], $partition);
             }
@@ -464,6 +467,7 @@ class IndexDocumentBundle implements CrawlConstants
                 //this case  might occur on a recrawl
                 if (isset($site[self::TYPE]) && $site[self::TYPE] == "link") {
                     $is_link = true;
+                    $link_cnt++;
                     $site_url = $site[self::TITLE];
                     $host =  UrlParser::getHost($site_url);
                     $link_parts = explode('|', $site[self::HASH]);
@@ -570,12 +574,11 @@ class IndexDocumentBundle implements CrawlConstants
                     crawlLog("..Inverting " . $link_to . $site_url .
                     "...took > 5s.");
                 }
-                $non_aux_doc_cnt++;
                 if (crawlTimeoutLog("..Still building inverted index. Have ".
                     "processed %s of %s documents.\n" .
                     "Total links or docs processed is %s.\n" .
                     "Last url processed was %s.",
-                    $non_aux_doc_cnt, $num_partition, $cnt,
+                    $non_aux_doc_cnt, $num_partition, $non_aux_doc_cnt + $cnt,
                     $link_to . $site_url) && $taking_too_long_touch) {
                     if (file_exists($taking_too_long_touch)) {
                         touch($taking_too_long_touch, time());
@@ -583,12 +586,26 @@ class IndexDocumentBundle implements CrawlConstants
                 }
             }
         }
+        if ($just_stats) {
+            $term_stats = [];
+            foreach ($postings as $term => $postings) {
+                $posting_records = $postings_tools->unpack($postings);
+                $term_stats[$term] = count($posting_records);
+            }
+            $statistics = [
+                "NUM_DOCS" => count($doc_map),
+                "NUM_LINKS" => $link_cnt,
+                "TERM_STATISTICS" => $term_stats
+            ];
+            return $statistics;
+        }
         $doc_map_tools->save($doc_map_filename, $doc_map);
         $postings_tools->save($postings_filename, $postings);
         $last_entries_tools->save($last_entries_filename, $last_entries);
         file_put_contents($positions_filename, $positions);
         crawlLog("  Build inverted index time ".
             changeInMicrotime($start_time));
+        return true;
     }
     /**
      * Given a $site array of information about a web page/document. Use
diff --git a/src/locale/ar/configure.ini b/src/locale/ar/configure.ini
index 98f9e7c8d..008459264 100755
--- a/src/locale/ar/configure.ini
+++ b/src/locale/ar/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "آلة الأوضاع"
 machinestatus_view_manage_crawls = "إدارة يزحف"
 machinestatus_view_media_updater = "الإعلام محدث"
 machinestatus_view_configure_media_jobs = "تكوين وظائف وسائل الإعلام"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "اسم الخادم"
 machinestatus_view_log = "سجل"
 machinestatus_view_machines = "آلات"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "المجموعة ضمن الفئة
 searchsources_element_trending_regex = "الاتجاه قيمة Regex:"
 searchsources_element_media_sources = "مصادر إعلامية"
 searchsources_element_subsearches = "سوبسيرتشيس الحالي"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "هل تريد حقا واضحة مسبقا بتحميل الأخبار تغذية البيانات ؟ "
 searchsources_element_clear_news_trending = "واضح الحالي آخر الأخبار تتجه البيانات"
 searchsources_element_medianame = "الاسم"
diff --git a/src/locale/ar/statistics.txt b/src/locale/ar/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/ar/statistics.txt
+++ b/src/locale/ar/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/bn/configure.ini b/src/locale/bn/configure.ini
index 64a4f229c..983c09847 100755
--- a/src/locale/bn/configure.ini
+++ b/src/locale/bn/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "মেশিন স্থিতিগু
 machinestatus_view_manage_crawls = "পরিচালনা হামাগুড়ি দেয়"
 machinestatus_view_media_updater = "মিডিয়া আপডেটার"
 machinestatus_view_configure_media_jobs = "কনফিগার মিডিয়া চাকরি"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "নাম সার্ভার"
 machinestatus_view_log = "লগ"
 machinestatus_view_machines = "মেশিন"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "গ্রুপ মধ্যে
 searchsources_element_trending_regex = "প্রবণতা মান Regex:"
 searchsources_element_media_sources = "মিডিয়া উত্স"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "আপনি কি সত্যিই পরিষ্কার করতে চান, পূর্বে ডাউনলোড খবর ফিড তথ্য?"
 searchsources_element_clear_news_trending = "স্পষ্ট বর্তমান খবর ফিড এবং প্রবণতা তথ্য"
 searchsources_element_medianame = "নাম"
diff --git a/src/locale/bn/statistics.txt b/src/locale/bn/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/bn/statistics.txt
+++ b/src/locale/bn/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/de/configure.ini b/src/locale/de/configure.ini
index 1a03ea3f7..fb4814fa4 100755
--- a/src/locale/de/configure.ini
+++ b/src/locale/de/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Machine Status"
 machinestatus_view_manage_crawls = "Verwalten Kriecht"
 machinestatus_view_media_updater = "Media-Updater"
 machinestatus_view_configure_media_jobs = "Konfigurieren Von Media Jobs"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "- Name-Server"
 machinestatus_view_log = "Melden"
 machinestatus_view_machines = "Maschinen"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Gruppe Innerhalb Der Kategorie:"
 searchsources_element_trending_regex = "Trend Wert-Regex:"
 searchsources_element_media_sources = "Media-Quellen"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Tun Sie wirklich l&ouml;schen m&ouml;chten, die Sie bereits heruntergeladen-news-feed-Daten?"
 searchsources_element_clear_news_trending = "L&ouml;schen der Aktuellen Nachrichten-Feeds und Trending-Daten"
 searchsources_element_medianame = "Name"
diff --git a/src/locale/de/statistics.txt b/src/locale/de/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/de/statistics.txt
+++ b/src/locale/de/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/en_US/configure.ini b/src/locale/en_US/configure.ini
index a51e1ff9f..0e319fc18 100644
--- a/src/locale/en_US/configure.ini
+++ b/src/locale/en_US/configure.ini
@@ -524,7 +524,7 @@ crawl_component_missing_type = "Must set media type!"
 crawl_component_missing_fields = "All Fields Need to be Filled!"
 crawl_component_media_source_added = "Media Source Added!"
 crawl_component_subsearch_added = "Subsearch Added!"
-crawl_component_clearing_data = "Clearing News and Trending Data!"
+crawl_component_clearing_data = "Clearing Feeds and Trending Data!"
 crawl_component_no_delete_source = "Source Was Not Deleted!"
 crawl_component_media_source_deleted = "Media Source Deleted!"
 crawl_component_subsearch_deleted = "Subsearch Deleted!"
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Machine Statuses"
 machinestatus_view_manage_crawls = "Manage Crawls"
 machinestatus_view_media_updater = "Media Updater"
 machinestatus_view_configure_media_jobs = "Configure Media Jobs"
+machinestatus_view_media_sources = "Media Sources"
 machinestatus_view_nameserver = "Name Server"
 machinestatus_view_log = "Log"
 machinestatus_view_machines = "Machines"
@@ -1258,8 +1259,9 @@ searchsources_element_trend_category_group = "Group Within Category:"
 searchsources_element_trending_regex = "Trend Value Regex:"
 searchsources_element_media_sources = "Media Sources"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = "Media Updater"
 searchsources_element_confirm_delete = "Do you really want to clear previously downloaded news feed data?"
-searchsources_element_clear_news_trending = "Clear Current News Feeds and Trending Data"
+searchsources_element_clear_news_trending = "Clear Feeds and Trending Data"
 searchsources_element_medianame = "Name"
 searchsources_element_action = "Action"
 searchsources_element_sourcetype = "Type:"
diff --git a/src/locale/es/configure.ini b/src/locale/es/configure.ini
index fa97aa638..46895d741 100755
--- a/src/locale/es/configure.ini
+++ b/src/locale/es/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "La M&aacute;quina De Estados"
 machinestatus_view_manage_crawls = "Administrar Los Rastreos"
 machinestatus_view_media_updater = "Los Medios De Comunicaci&oacute;n Updater"
 machinestatus_view_configure_media_jobs = "Configurar Los Empleos De Medios"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Nombre Del Servidor"
 machinestatus_view_log = "Registro de"
 machinestatus_view_machines = "M&aacute;quinas"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Grupo Dentro De La Categor&iacute;
 searchsources_element_trending_regex = "El Valor De Tendencia Regex:"
 searchsources_element_media_sources = "Fuentes De Medios De Comunicaci&oacute;n"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "&iquest;Realmente desea borrar previamente descargado el feed de noticias de los datos?"
 searchsources_element_clear_news_trending = "Claro Actuales fuentes de Noticias y Datos de Tendencias"
 searchsources_element_medianame = "Nombre"
diff --git a/src/locale/es/statistics.txt b/src/locale/es/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/es/statistics.txt
+++ b/src/locale/es/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/fa/configure.ini b/src/locale/fa/configure.ini
index e72761d81..1670ad311 100755
--- a/src/locale/fa/configure.ini
+++ b/src/locale/fa/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "وضعیت دستگاه"
 machinestatus_view_manage_crawls = "مدیریت می خزد"
 machinestatus_view_media_updater = "رسانه Updater"
 machinestatus_view_configure_media_jobs = "پیکربندی رسانه های مشاغل"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "نام سرور"
 machinestatus_view_log = "گزارش"
 machinestatus_view_machines = "ماشین آلات"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "گروه در دسته:"
 searchsources_element_trending_regex = "روند ارزش عبارت منظم:"
 searchsources_element_media_sources = "منابع رسانه"
 searchsources_element_subsearches = "زیرجستجوهای فعلی"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "آیا شما واقعا می خواهید به پاک کردن قبلا دریافت خوراک خبری داده ؟ "
 searchsources_element_clear_news_trending = "روشن زمان اخبار و روند داده ها"
 searchsources_element_medianame = "نام"
diff --git a/src/locale/fa/statistics.txt b/src/locale/fa/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/fa/statistics.txt
+++ b/src/locale/fa/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/fr_FR/configure.ini b/src/locale/fr_FR/configure.ini
index fab352c4b..28fa835ab 100755
--- a/src/locale/fr_FR/configure.ini
+++ b/src/locale/fr_FR/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Machine Statuts"
 machinestatus_view_manage_crawls = "G&eacute;rer Les Analyses"
 machinestatus_view_media_updater = "Mise &agrave; jour des m&eacute;dias processeur"
 machinestatus_view_configure_media_jobs = "Configurer Les M&eacute;tiers Des M&eacute;dias"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Serveur De Nom"
 machinestatus_view_log = "Journal"
 machinestatus_view_machines = "Machines"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Groupe Au Sein De La Cat&eacute;go
 searchsources_element_trending_regex = "La Tendance De La Valeur De La Regex:"
 searchsources_element_media_sources = "Les sources des m&eacute;dias"
 searchsources_element_subsearches = "Sous-recherches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Voulez-vous vraiment effacer pr&eacute;c&eacute;demment t&eacute;l&eacute;charg&eacute; flux de nouvelles donn&eacute;es?"
 searchsources_element_clear_news_trending = "Claire actuelle des flux d&#039;actualit&eacute;s et les tendances des donn&eacute;es"
 searchsources_element_medianame = "Nom"
diff --git a/src/locale/fr_FR/statistics.txt b/src/locale/fr_FR/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/fr_FR/statistics.txt
+++ b/src/locale/fr_FR/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/he/configure.ini b/src/locale/he/configure.ini
index 1d61923d4..db8bd0426 100755
--- a/src/locale/he/configure.ini
+++ b/src/locale/he/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "מכונת סטטוסים"
 machinestatus_view_manage_crawls = "ניהול זוחל"
 machinestatus_view_media_updater = "מדיה Updater"
 machinestatus_view_configure_media_jobs = "להגדיר מדיה עבודות"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "שם שרת"
 machinestatus_view_log = "יומן"
 machinestatus_view_machines = "מכונות"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "קבוצה בתוך קטגוריה
 searchsources_element_trending_regex = "מגמה ערך Regex:"
 searchsources_element_media_sources = "מקורות מדיה"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "אתה באמת רוצה לנקות שהורדו בעבר חדשות הזנת נתונים?"
 searchsources_element_clear_news_trending = "ברור הנוכחית הזנות חדשות ומגמה נתוני"
 searchsources_element_medianame = "שם"
diff --git a/src/locale/he/statistics.txt b/src/locale/he/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/he/statistics.txt
+++ b/src/locale/he/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/hi/configure.ini b/src/locale/hi/configure.ini
index 3abbc35a8..0d0ab613c 100755
--- a/src/locale/hi/configure.ini
+++ b/src/locale/hi/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "मशीन स्थितियां"
 machinestatus_view_manage_crawls = "प्रबंधन क्रॉल"
 machinestatus_view_media_updater = "मीडिया Updater"
 machinestatus_view_configure_media_jobs = "कॉन्फ़िगर मीडिया नौकरियां"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "नाम सर्वर"
 machinestatus_view_log = "लॉग इन करें"
 machinestatus_view_machines = "मशीनों"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "समूह के भीतर
 searchsources_element_trending_regex = "प्रवृत्ति मूल्य Regex:"
 searchsources_element_media_sources = "मीडिया स्रोतों"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "क्या आप वास्तव में चाहते हैं स्पष्ट करने के लिए पहले से डाउनलोड समाचार फ़ीड डेटा?"
 searchsources_element_clear_news_trending = "स्पष्ट वर्तमान समाचार फ़ीड और ट्रेंडिंग डेटा"
 searchsources_element_medianame = "नाम"
diff --git a/src/locale/hi/statistics.txt b/src/locale/hi/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/hi/statistics.txt
+++ b/src/locale/hi/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/id/configure.ini b/src/locale/id/configure.ini
index 0763ccc7f..125a35496 100755
--- a/src/locale/id/configure.ini
+++ b/src/locale/id/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Mesin Status"
 machinestatus_view_manage_crawls = "Mengelola Merangkak"
 machinestatus_view_media_updater = "Media Updater"
 machinestatus_view_configure_media_jobs = "Mengkonfigurasi Media Lowongan"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Nama Server"
 machinestatus_view_log = "Log"
 machinestatus_view_machines = "Mesin"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Kelompok Dalam Kategori:"
 searchsources_element_trending_regex = "Tren Nilai Regex:"
 searchsources_element_media_sources = "Sumber-Sumber Media"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Apakah anda benar-benar ingin menghapus sebelumnya download kabar berita data?"
 searchsources_element_clear_news_trending = "Yang jelas Saat ini Feed Berita dan Tren Data"
 searchsources_element_medianame = "Nama"
diff --git a/src/locale/id/statistics.txt b/src/locale/id/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/id/statistics.txt
+++ b/src/locale/id/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/it/configure.ini b/src/locale/it/configure.ini
index 5a30cafa4..6aafe19b9 100755
--- a/src/locale/it/configure.ini
+++ b/src/locale/it/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Stati Di Macchina"
 machinestatus_view_manage_crawls = "Gestire Le Ricerche Per Indicizzazione"
 machinestatus_view_media_updater = "Media Updater"
 machinestatus_view_configure_media_jobs = "Configurare La Media Di Posti Di Lavoro"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Nome Server"
 machinestatus_view_log = "Log"
 machinestatus_view_machines = "Macchine"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Gruppo All&#039;Interno Della Cate
 searchsources_element_trending_regex = "Valore Di Tendenza Regex:"
 searchsources_element_media_sources = "Fonti Multimediali"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Vuoi davvero cancellare precedentemente scaricato news feed di dati?"
 searchsources_element_clear_news_trending = "Chiara Corrente, News Feed e i Dati di Tendenza"
 searchsources_element_medianame = "Nome"
diff --git a/src/locale/it/statistics.txt b/src/locale/it/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/it/statistics.txt
+++ b/src/locale/it/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/ja/configure.ini b/src/locale/ja/configure.ini
index 25d50981f..1a4bd32d5 100755
--- a/src/locale/ja/configure.ini
+++ b/src/locale/ja/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "機械の状態"
 machinestatus_view_manage_crawls = "管理に役立"
 machinestatus_view_media_updater = "メディアアップデータ"
 machinestatus_view_configure_media_jobs = "設定メディアの仕事"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "サーバー名"
 machinestatus_view_log = "ログ"
 machinestatus_view_machines = "機械"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "グループカテゴリ:"
 searchsources_element_trending_regex = "流値Regex:"
 searchsources_element_media_sources = "メディア源"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "いったいク選択ダイアログボックスrssフィードにデータはもらえますか?"
 searchsources_element_clear_news_trending = "明確なテクニカル-コミュニティィでおすすめのデータ"
 searchsources_element_medianame = "名称"
diff --git a/src/locale/ja/statistics.txt b/src/locale/ja/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/ja/statistics.txt
+++ b/src/locale/ja/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/kn/configure.ini b/src/locale/kn/configure.ini
index 8e30d23c5..850ea4b0a 100755
--- a/src/locale/kn/configure.ini
+++ b/src/locale/kn/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "ಯಂತ್ರ ಸ್ಥಿತಿತ್
 machinestatus_view_manage_crawls = "ನಿರ್ವಹಿಸಿ ಕ್ರಾಲ್"
 machinestatus_view_media_updater = "ಮಾಧ್ಯಮ ಅಪ್ಡೇಟ್"
 machinestatus_view_configure_media_jobs = "ಸಂರಚಿಸಲು ಮಾಧ್ಯಮ ಉದ್ಯೋಗಗಳು"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "ಹೆಸರು ಸರ್ವರ್"
 machinestatus_view_log = "ಲಾಗ್"
 machinestatus_view_machines = "ಯಂತ್ರಗಳು"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "ಗುಂಪು ಒಳಗೆ ವ
 searchsources_element_trending_regex = "ಪ್ರವೃತ್ತಿ ಮೌಲ್ಯ ರಿಜೆಕ್ಸ್:"
 searchsources_element_media_sources = "ಮಾಧ್ಯಮ ಮೂಲಗಳು"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Do you really want to clear ಹಿಂದೆ ಡೌನ್ಲೋಡ್ ಸುದ್ದಿ ಫೀಡ್ ಡೇಟಾ?"
 searchsources_element_clear_news_trending = "ಸ್ಪಷ್ಟ ಪ್ರಸ್ತುತ ಸುದ್ದಿ ಫೀಡ್ಗಳನ್ನು ಮತ್ತು ಧೋರಣೆ ಡೇಟಾ"
 searchsources_element_medianame = "ಹೆಸರು"
diff --git a/src/locale/kn/statistics.txt b/src/locale/kn/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/kn/statistics.txt
+++ b/src/locale/kn/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/ko/configure.ini b/src/locale/ko/configure.ini
index ca29076df..90d135c6a 100755
--- a/src/locale/ko/configure.ini
+++ b/src/locale/ko/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "기계 상태"
 machinestatus_view_manage_crawls = "관리롤"
 machinestatus_view_media_updater = "미디어 Updater"
 machinestatus_view_configure_media_jobs = "구성 미디어 작업"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "이름 서버"
 machinestatus_view_log = "로그인"
 machinestatus_view_machines = "기계"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "그룹 내에서 카테고리:"
 searchsources_element_trending_regex = "추 값 Regex:"
 searchsources_element_media_sources = "미디어 소스"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "당신이 정말로 원하는 명확한 이전 다운로드 뉴스 피드 데이터가?"
 searchsources_element_clear_news_trending = "명확한 현재의 뉴스와 데이터를 동향"
 searchsources_element_medianame = "이름"
diff --git a/src/locale/ko/statistics.txt b/src/locale/ko/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/ko/statistics.txt
+++ b/src/locale/ko/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/nl/configure.ini b/src/locale/nl/configure.ini
index 69a1b07ce..15cabff38 100644
--- a/src/locale/nl/configure.ini
+++ b/src/locale/nl/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Machine Statussen"
 machinestatus_view_manage_crawls = "Beheren Kruipt"
 machinestatus_view_media_updater = "media Updater"
 machinestatus_view_configure_media_jobs = "Configureren Media Banen"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Naam Server"
 machinestatus_view_log = "Inloggen"
 machinestatus_view_machines = "Machines"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Groep Binnen Een Categorie:"
 searchsources_element_trending_regex = "Trend Waarde Regex:"
 searchsources_element_media_sources = "media Bronnen"
 searchsources_element_subsearches = "huidige Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Wil je echt een duidelijke eerder gedownloade nieuws feed data?"
 searchsources_element_clear_news_trending = "Helder Actueel Nieuws Feeds en Trending Gegevens"
 searchsources_element_medianame = "naam"
diff --git a/src/locale/nl/statistics.txt b/src/locale/nl/statistics.txt
index 5a165df53..b6bef56f0 100644
--- a/src/locale/nl/statistics.txt
+++ b/src/locale/nl/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/pl/configure.ini b/src/locale/pl/configure.ini
index 5101b0994..31e1eb62d 100755
--- a/src/locale/pl/configure.ini
+++ b/src/locale/pl/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Maszyna Stan&oacute;w"
 machinestatus_view_manage_crawls = "Zarządzanie Skrada"
 machinestatus_view_media_updater = "MEDIA Апдейтер"
 machinestatus_view_configure_media_jobs = "Dostosować Pracę MEDI&Oacute;W "
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Nazwa Serwera "
 machinestatus_view_log = "Magazyn"
 machinestatus_view_machines = "Maszyny"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Grupy Kategorii:"
 searchsources_element_trending_regex = "Tendencja Wartość Regex:"
 searchsources_element_media_sources = "Źr&oacute;dła MEDI&Oacute;W "
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Czy na pewno chcesz usunąć wcześniej pobrane Wiadomości nośnik danych?"
 searchsources_element_clear_news_trending = "Jasne aktualnych nowości i trend&oacute;w danych"
 searchsources_element_medianame = "Nazwa"
diff --git a/src/locale/pl/statistics.txt b/src/locale/pl/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/pl/statistics.txt
+++ b/src/locale/pl/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/pt/configure.ini b/src/locale/pt/configure.ini
index 2625868c4..5902e28d4 100755
--- a/src/locale/pt/configure.ini
+++ b/src/locale/pt/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "A M&aacute;quina De Estados"
 machinestatus_view_manage_crawls = "Gerenciar Rastreamentos"
 machinestatus_view_media_updater = "M&iacute;dia Updater"
 machinestatus_view_configure_media_jobs = "Configurar Trabalhos De M&iacute;dia"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Nome Do Servidor"
 machinestatus_view_log = "Registo"
 machinestatus_view_machines = "M&aacute;quinas"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Grupo Dentro Da Categoria:"
 searchsources_element_trending_regex = "Valor De Tend&ecirc;ncia Regex:"
 searchsources_element_media_sources = "Fontes De M&iacute;dia"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Voc&ecirc; realmente deseja limpar previamente baixados feed de not&iacute;cias de dados?"
 searchsources_element_clear_news_trending = "Claro Atuais de Feeds de Not&iacute;cias e Dados de Tend&ecirc;ncia"
 searchsources_element_medianame = "Nome"
diff --git a/src/locale/pt/statistics.txt b/src/locale/pt/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/pt/statistics.txt
+++ b/src/locale/pt/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/ru/configure.ini b/src/locale/ru/configure.ini
index fcab531bc..81621e51e 100755
--- a/src/locale/ru/configure.ini
+++ b/src/locale/ru/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Машина Статусов"
 machinestatus_view_manage_crawls = "Управление Ползает"
 machinestatus_view_media_updater = "СМИ Апдейтер"
 machinestatus_view_configure_media_jobs = "Настроить Работу СМИ "
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Имя Сервера "
 machinestatus_view_log = "Журнал"
 machinestatus_view_machines = "Машины"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Группы В Категории
 searchsources_element_trending_regex = "Тенденция Значение Regex:"
 searchsources_element_media_sources = "Источники СМИ "
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Вы действительно хотите удалить ранее загруженные Новости канал данных?"
 searchsources_element_clear_news_trending = "Понятно текущих новостей и трендов данных"
 searchsources_element_medianame = "Название"
diff --git a/src/locale/ru/statistics.txt b/src/locale/ru/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/ru/statistics.txt
+++ b/src/locale/ru/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/te/configure.ini b/src/locale/te/configure.ini
index 3b1f4a4ef..c931e3f77 100644
--- a/src/locale/te/configure.ini
+++ b/src/locale/te/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "యంత్రం హోదాలు"
 machinestatus_view_manage_crawls = "నిర్వహించండి Crawls"
 machinestatus_view_media_updater = "మీడియా నవీకరణ"
 machinestatus_view_configure_media_jobs = "ఆకృతీకరించుటకు మీడియా ఉద్యోగాలు"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "పేరు సర్వర్"
 machinestatus_view_log = "లోనికి ప్రవేశించండి"
 machinestatus_view_machines = "యంత్రాలు"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "గ్రూప్ లోపల
 searchsources_element_trending_regex = "ధోరణి విలువ Regex:"
 searchsources_element_media_sources = "మీడియా వర్గాలు"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Do you really want to clear గతంలో డౌన్లోడ్ న్యూస్ ఫీడ్ డేటా?"
 searchsources_element_clear_news_trending = "స్పష్టమైన ప్రస్తుత వార్తలు ఫీడ్లు మరియు డేటా ట్రెండింగ్"
 searchsources_element_medianame = "పేరు"
diff --git a/src/locale/te/statistics.txt b/src/locale/te/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/te/statistics.txt
+++ b/src/locale/te/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/th/configure.ini b/src/locale/th/configure.ini
index c92a11f11..9a5bc288d 100755
--- a/src/locale/th/configure.ini
+++ b/src/locale/th/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "เครื่อง Statuses"
 machinestatus_view_manage_crawls = "จัดการคลานขึ้น"
 machinestatus_view_media_updater = "สื่อ Updater"
 machinestatus_view_configure_media_jobs = "ปรับแต่งงานสื่อ"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "ชื่อเซิร์ฟเวอร์"
 machinestatus_view_log = "ปูมบันทึก"
 machinestatus_view_machines = "เครื่องจักร"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "กลุ่มภายในห
 searchsources_element_trending_regex = "นนี้กระแสความนิยมค่า Regex:"
 searchsources_element_media_sources = "ส่วนขยายแฟ้มของแหล่ง"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "คุณต้องการจะชัดเจนความเดิมตอนที่แล้วดาวน์โหลดข้อมูลข่าวแหล่งป้อนข้อมูลนั้นเหรอ?"
 searchsources_element_clear_news_trending = "เคลียร์ปัจจุบันข่าวแหล่งป้อนแล้วติดเทรนข้อมูล"
 searchsources_element_medianame = "ชื่อ"
diff --git a/src/locale/th/statistics.txt b/src/locale/th/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/th/statistics.txt
+++ b/src/locale/th/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/tl/configure.ini b/src/locale/tl/configure.ini
index a84ce2827..5f894103e 100644
--- a/src/locale/tl/configure.ini
+++ b/src/locale/tl/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Machine Katayuan"
 machinestatus_view_manage_crawls = "Pamahalaan Ang Mga Pag-Crawl"
 machinestatus_view_media_updater = "Media Updater"
 machinestatus_view_configure_media_jobs = "I-Configure Ang Mga Media Trabaho"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Pangalan Ng Server"
 machinestatus_view_log = "Mag-Log"
 machinestatus_view_machines = "Machine"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Grupo Sa Loob Ng Kategorya:"
 searchsources_element_trending_regex = "Trend Na Halaga Regex:"
 searchsources_element_media_sources = "Pinagmumulan Ng Media"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Huwag mo ba talagang nais upang i-clear ang naunang na-download na mga balita feed ng data?"
 searchsources_element_clear_news_trending = "Malinaw Kasalukuyang mga Feed ng Balita at nagte-Trend na Data"
 searchsources_element_medianame = "Pangalan"
diff --git a/src/locale/tl/statistics.txt b/src/locale/tl/statistics.txt
index 5a165df53..b6bef56f0 100644
--- a/src/locale/tl/statistics.txt
+++ b/src/locale/tl/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/tr/configure.ini b/src/locale/tr/configure.ini
index 88c3e6fb3..84a2b8d12 100755
--- a/src/locale/tr/configure.ini
+++ b/src/locale/tr/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "Makine Durumları"
 machinestatus_view_manage_crawls = "Y&ouml;netmek Gezinme"
 machinestatus_view_media_updater = "Medya G&uuml;ncelleme"
 machinestatus_view_configure_media_jobs = "Yapılandırmak Medya İşleri"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Adı Server"
 machinestatus_view_log = "G&uuml;nl&uuml;k"
 machinestatus_view_machines = "Makineleri"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Kategori İ&ccedil;inde Grup:"
 searchsources_element_trending_regex = "Trend Değeri İfade:"
 searchsources_element_media_sources = "Medya Kaynakları"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Ger&ccedil;ekten daha &ouml;nce indirilen haber kaynağı verileri silmek istiyor musunuz?"
 searchsources_element_clear_news_trending = "Net G&uuml;ncel Haber Beslemeleri ve Eğilimleri Veri"
 searchsources_element_medianame = "Adı"
diff --git a/src/locale/tr/statistics.txt b/src/locale/tr/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/tr/statistics.txt
+++ b/src/locale/tr/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/vi_VN/configure.ini b/src/locale/vi_VN/configure.ini
index f9497290a..9850088e4 100755
--- a/src/locale/vi_VN/configure.ini
+++ b/src/locale/vi_VN/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "M&aacute;y T&igrave;nh Trạng"
 machinestatus_view_manage_crawls = "Quản L&yacute; B&ograve;"
 machinestatus_view_media_updater = "Phương Tiện Truyền Thông Cập"
 machinestatus_view_configure_media_jobs = "Cấu H&igrave;nh C&ocirc;ng Việc Truyền Th&ocirc;ng"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "Tên Chủ"
 machinestatus_view_log = "Log"
 machinestatus_view_machines = "Máy"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "Nh&oacute;m Trong Mục:"
 searchsources_element_trending_regex = "Xu Hướng Gi&aacute; Trị Dịch:"
 searchsources_element_media_sources = "Nguồn Phương Tiện Truyền Thông"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "Bạn có thực sự muốn rõ ràng đã tải trước đó, nguồn tin dữ liệu?"
 searchsources_element_clear_news_trending = "Rõ ràng Hiện tại, Tin tức, và Hướng về dữ Liệu"
 searchsources_element_medianame = "Tên"
diff --git a/src/locale/vi_VN/statistics.txt b/src/locale/vi_VN/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/vi_VN/statistics.txt
+++ b/src/locale/vi_VN/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/locale/zh_CN/configure.ini b/src/locale/zh_CN/configure.ini
index ba11e4028..ddad747a3 100755
--- a/src/locale/zh_CN/configure.ini
+++ b/src/locale/zh_CN/configure.ini
@@ -748,6 +748,7 @@ machinestatus_view_machine_statuses = "机状态"
 machinestatus_view_manage_crawls = "管理爬"
 machinestatus_view_media_updater = "媒体更新"
 machinestatus_view_configure_media_jobs = "配置媒体的工作"
+machinestatus_view_media_sources = ""
 machinestatus_view_nameserver = "服务器名称"
 machinestatus_view_log = "日志"
 machinestatus_view_machines = "机"
@@ -1258,6 +1259,7 @@ searchsources_element_trend_category_group = "集团内的类别:"
 searchsources_element_trending_regex = "一趋势值Regex:"
 searchsources_element_media_sources = "媒体来源"
 searchsources_element_subsearches = "Subsearches"
+searchsources_element_media_updater = ""
 searchsources_element_confirm_delete = "你真的想清楚之前下载的新闻饲料的数据?"
 searchsources_element_clear_news_trending = "清楚当前的新闻饲料和趋势的数据"
 searchsources_element_medianame = "名称"
diff --git a/src/locale/zh_CN/statistics.txt b/src/locale/zh_CN/statistics.txt
index 5a165df53..b6bef56f0 100755
--- a/src/locale/zh_CN/statistics.txt
+++ b/src/locale/zh_CN/statistics.txt
@@ -1 +1 @@
-d:100;
\ No newline at end of file
+d:99;
\ No newline at end of file
diff --git a/src/views/MachinestatusView.php b/src/views/MachinestatusView.php
index a50216cd4..c783a8250 100644
--- a/src/views/MachinestatusView.php
+++ b/src/views/MachinestatusView.php
@@ -89,7 +89,11 @@ class MachinestatusView extends View
             "Media Updater", $data[C\CSRF_TOKEN]) ?></h2>
         <div class="no-margin">&nbsp;[<a <?=$target
             ?> href="<?=$base_url . 'mediajobs'
-            ?>"><?= tl('machinestatus_view_configure_media_jobs'); ?>]</a></div>
+            ?>"><?= tl('machinestatus_view_configure_media_jobs'); ?>]</a>
+            [<a <?=$target
+                ?> href="<?=$admin_url . "a=searchSources&amp;$csrf_token"
+                ?>"><?= tl('machinestatus_view_media_sources'); ?></a>]
+        </div>
         <div class="box">
         <h3 class="no-margin"><?=tl('machinestatus_view_nameserver') ?></h3>
         <form id="media-form" method="post">
diff --git a/src/views/elements/SearchsourcesElement.php b/src/views/elements/SearchsourcesElement.php
index 0080ff654..c1e0e7f47 100644
--- a/src/views/elements/SearchsourcesElement.php
+++ b/src/views/elements/SearchsourcesElement.php
@@ -169,11 +169,13 @@ class SearchsourcesElement extends Element
             $this->view->helper("close")->render($base_url);
             $this->renderMediaSourceForm($data);
         } else {?>
-            <div><b>[<a href="<?= $base_url . '&arg=cleardata'?>"
+            <div>[<a href="<?= $pre_base_url . '&a=manageMachines'?>" ><?=
+                tl('searchsources_element_media_updater')
+            ?></a>] [<a href="<?= $base_url . '&arg=cleardata'?>"
                 onclick='javascript:return confirm("<?=
                 tl('searchsources_element_confirm_delete') ?>");' ><?=
                 tl('searchsources_element_clear_news_trending')
-            ?></a>]</b></div><?php
+            ?></a>]</div><?php
             $data['SEARCH_ARG'] = 'sourcesearch';
             $data['TABLE_TITLE'] = tl('searchsources_element_media_sources');
             $data['NO_FLOAT_TABLE'] = false;
ViewGit