浏览代码

better stats collection and printing

Nick Sweeting 6 年之前
父节点
当前提交
ef865dd76a
共有 2 个文件被更改,包括 23 次插入30 次删除
  1. 11 12
      archivebox/archive_methods.py
  2. 12 18
      archivebox/logs.py

+ 11 - 12
archivebox/archive_methods.py

@@ -85,29 +85,28 @@ def archive_link(link_dir, link):
 
         link = load_json_link_index(link_dir, link)
         log_link_archiving_started(link_dir, link, is_new)
-        skipped_entirely = True
+        stats = {'skipped': 0, 'succeeded': 0, 'failed': 0}
 
         for method_name, should_run, method_function in ARCHIVE_METHODS:
             if method_name not in link['history']:
                 link['history'][method_name] = []
             
             if should_run(link_dir, link):
-                if skipped_entirely:
-                    skipped_entirely = False
-                    print()
-            else:
-                continue
+                log_archive_method_started(method_name)
+
+                result = method_function(link_dir, link)
+                link['history'][method_name].append(result)
 
-            log_archive_method_started(method_name)
-            result = method_function(link_dir, link)
-            log_archive_method_finished(result)
+                stats[result['status']] += 1
+                log_archive_method_finished(result)
+            else:
+                stats['skipped'] += 1
 
-            link['history'][method_name].append(result)
+        # print('    ', stats)
 
         write_link_index(link_dir, link)
         patch_links_index(link)
-
-        log_link_archiving_finished(link_dir, link, is_new, skipped_entirely)
+        log_link_archiving_finished(link_dir, link, is_new, stats)
 
     except Exception as err:
         print('    ! Failed to archive link: {}: {}'.format(err.__class__.__name__, err))

+ 12 - 18
archivebox/logs.py

@@ -116,9 +116,9 @@ def log_archiving_finished(num_links):
         duration,
         ANSI['reset'],
     ))
-    print('    - {} entries skipped'.format(_LAST_RUN_STATS['skipped']))
-    print('    - {} entries updated'.format(_LAST_RUN_STATS['succeeded']))
-    print('    - {} errors'.format(_LAST_RUN_STATS['failed']))
+    print('    - {} links skipped'.format(_LAST_RUN_STATS['skipped']))
+    print('    - {} links updated'.format(_LAST_RUN_STATS['succeeded']))
+    print('    - {} links had errors'.format(_LAST_RUN_STATS['failed']))
     print('    To view your archive, open: {}/index.html'.format(OUTPUT_DIR.replace(REPO_DIR + '/', '')))
 
 
@@ -135,26 +135,20 @@ def log_link_archiving_started(link_dir, link, is_new):
         **ANSI,
     ))
     print('    {blue}{url}{reset}'.format(url=link['url'], **ANSI))
-    sys.stdout.write('    > {}{}'.format(
+    print('    {} {}'.format(
+        '>' if is_new else '√',
         pretty_path(link_dir),
-        ' (new)' if is_new else '',
     ))
 
-def log_link_archiving_finished(link_dir, link, is_new, skipped_entirely):
-    from util import latest_output
-    
-    if all(output == 'succeeded' for output in latest_output(link).values()):
-        _LAST_RUN_STATS['succeeded'] += 1
-    elif any(output == 'failed' for output in latest_output(link).values()):
+def log_link_archiving_finished(link_dir, link, is_new, stats):
+    total = sum(stats.values())
+
+    if stats['failed'] > 0 :
         _LAST_RUN_STATS['failed'] += 1
-    else:
+    elif stats['skipped'] == total:
         _LAST_RUN_STATS['skipped'] += 1
-
-    if skipped_entirely:
-        print('\r    √ {}{}'.format(
-            pretty_path(link_dir),
-            ' (new)' if is_new else '',
-        ))
+    else:
+        _LAST_RUN_STATS['succeeded'] += 1
 
 
 def log_archive_method_started(method):