From 433bf784f0c9c36bda135a43de24f983dc3896da Mon Sep 17 00:00:00 2001
From: "Jochens, Florian" <fj@andaco.de>
Date: Fri, 5 Nov 2021 15:48:33 +0100
Subject: [PATCH] input_fj.py

---
 input/input_fj.py | 40 ++++++++++++++++++++++++++--------------
 1 file changed, 26 insertions(+), 14 deletions(-)

diff --git a/input/input_fj.py b/input/input_fj.py
index 00566e0..444c8c2 100755
--- a/input/input_fj.py
+++ b/input/input_fj.py
@@ -1,6 +1,6 @@
 #!/usr/bin/env python3
 """
-Functions for information retrievel of articles from the ACS journal JCIM
+Functions for information retrieval of articles from the ACS journal JCIM
 
 """
 
@@ -53,8 +53,12 @@ def get_article_info(soup):
     contributors = []
     for con in cons.find_all('span', class_ = 'hlFld-ContribAuthor'):
         contributors.append(con.text)
-    num_citations = header.find('a', class_ = 'internalNav').text
-    
+    numc = header.find('div', class_ = 'articleMetrics_count')
+    if not numc.a:
+        num_citations = 0
+    else:
+        num_citations = numc.a.text
+
     pub = Publication(article_title, publication_date, contributors, doi_url,
                       subjects, num_citations)
     return pub
@@ -106,26 +110,34 @@ Subjects:''')
     print(*(pub.subjects), sep = ", ")
     print('\nContributors:')
     print(*(pub.contributors), sep = ", ")
-    print(f'\nThis article is cited by the following {pub.num_citations} publications\n')
-    for citation in pub._citations:
-        print(f'''
+
+    if int(pub.num_citations) > 0:
+        if int(pub.num_citations) == 1:
+            print(f'\nThis publication is cited by the following publication:\n')
+        else:
+            print(f'\nThis publication is cited by the following {pub.num_citations} publications:\n')
+        for citation in pub._citations:
+            print(f'''
     Title:        {citation.title}
     Journal:      {citation.journal}
     Contributors: {citation.contributors}
     DOI-URL:      {citation.doi_url}
-    ''')
+            ''')
+    else:
+        print('\nThis publication is not cited by any other publication.')
 
 def input(url):
     html_text = req.get(url).text
     soup = bs(html_text, 'html.parser')
     
     pub = get_article_info(soup)
-    get_citation_info(pub, int(pub.num_citations), soup)
+    if int(pub.num_citations) > 0:
+        get_citation_info(pub, int(pub.num_citations), soup)
     return pub
 
-if len(sys.argv) != 2:
-    sys.stderr.write('Usage: {} <url>\n'.format(sys.argv[0]))
-    exit(1)
-url = sys.argv[1]
-pub = input(url)
-print_pub_info(pub)
+#if len(sys.argv) != 2:
+#    sys.stderr.write('Usage: {} <url>\n'.format(sys.argv[0]))
+#    exit(1)
+#url = sys.argv[1]
+#pub = input(url)
+#print_pub_info(pub)
-- 
GitLab