@@ -104,7 +104,7 @@ def run
104104
105105 def scrape ( source , user = get_user , index : 0 )
106106 source_start = Time . now
107- output = ''
107+ output = [ ]
108108 log '' , 1
109109 if source . enabled
110110 log t ( 'scraper.messages.processing' , source : source . content_provider &.title , num : index . to_s ) , 1
@@ -114,9 +114,9 @@ def scrape(source, user = get_user, index: 0)
114114 end
115115 if validate_source ( source )
116116 log t ( 'scraper.messages.valid_source' ) , 2
117- output += "**Provider:** #{ source . content_provider . title } \n \n "
118- output += "<span style='url-wrap'>**URL:** #{ source . url } </span>\n \n "
119- output += "**Method:** #{ source . ingestor_title } \n \n "
117+ output << "**Provider:** #{ source . content_provider . title } "
118+ output << "<span style='url-wrap'>**URL:** #{ source . url } </span>"
119+ output << "**Method:** #{ source . ingestor_title } "
120120
121121 # get ingestor
122122 ingestor = Ingestors ::IngestorFactory . get_ingestor ( source . method )
@@ -127,16 +127,16 @@ def scrape(source, user = get_user, index: 0)
127127 # read records
128128 ingestor . read ( source . url )
129129 unless ingestor . messages . blank?
130- output += "\n ## Reading\n \n "
131- ingestor . messages . each { | m | output += " #{ m } \n " }
130+ output << "\n ## Reading"
131+ output += ingestor . messages
132132 ingestor . messages . clear
133133 end
134134
135135 # write resources
136136 ingestor . write ( user , source . content_provider , source : source )
137137 unless ingestor . messages . blank?
138- output += "\n ## Writing\n \n "
139- ingestor . messages . each { | m | output += " #{ m } \n " }
138+ output << "\n ## Writing"
139+ output += ingestor . messages
140140 ingestor . messages . clear
141141 end
142142
@@ -152,14 +152,14 @@ def scrape(source, user = get_user, index: 0)
152152 ", rejected[#{ source . resources_rejected } ]" , 2
153153 end
154154 rescue StandardError => e
155- output += "\n **Failed:** #{ e . message } \n \n "
155+ output << "\n **Failed:** #{ e . message } "
156156 log "Ingestor: #{ ingestor . class } failed with: #{ e . message } \t #{ e . backtrace [ 0 ] } " , 2
157157 ensure
158158 source . finished_at = Time . now
159159 run_time = source . finished_at - source_start
160- output += "\n **Finished at:** #{ source . finished_at . strftime '%H:%M on %A, %d %B %Y (UTC)' } \n "
161- output += " \n **Run time:** #{ run_time . round ( 2 ) } s\n "
162- source . log = output
160+ output << "\n **Finished at:** #{ source . finished_at . strftime '%H:%M on %A, %d %B %Y (UTC)' } "
161+ output << " **Run time:** #{ run_time . round ( 2 ) } s"
162+ source . log = output . join ( " \n \n " )
163163 begin
164164 # only update enabled sources
165165 source . save! if source . enabled && !source . is_a? ( Scraper ::ConfigSource )
0 commit comments