Skip to content

Commit a516638

Browse files
authored
Merge pull request #7 from bytesview/new_updates
added new parameter and bug fix
2 parents b9386db + 274376a commit a516638

2 files changed

Lines changed: 18 additions & 11 deletions

File tree

newsdataapi/helpers.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,14 @@ def save_to_csv(self, response: dict, folder_path: str=None, filename: str=None)
4646
for result in results:
4747
for k, v in result.items():
4848
if isinstance(v, dict):
49-
result[k] = ','.join(f'{i}:{j}' for i, j in v.items())
49+
data = ','.join(f'{i}:{j}' for i, j in v.items())
50+
result[k] = f'"{data}"'
5051
elif isinstance(v, list):
51-
result[k] = ','.join(map(str, v))
52+
data = ','.join(map(str, v))
53+
result[k] = f'"{data}"'
54+
else:
55+
if v is not None:
56+
result[k] = f'"{v}"'
5257

5358
self.generate_csv_file(results, full_path)
5459

newsdataapi/newsdataapi_client.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def api_proxies( self, proxies:dict)->None:
4343
self.proxies = proxies
4444

4545
def __validate_parms(self,param:str,value:Union[list,int,str,bool])->dict:
46-
bool_params = {'full_content','image','video','cryptofeeds'}
46+
bool_params = {'full_content','image','video','removeduplicate'}
4747
int_params = {'size'}
4848
string_params = {
4949
'q','qInTitle','country','category','language','domain','domainurl','excludedomain','timezone','page',
@@ -157,7 +157,7 @@ def news_api(
157157
domainurl:Optional[Union[str, list]]=None, excludedomain:Optional[Union[str, list]]=None, timezone:Optional[str]=None, full_content:Optional[bool]=None,
158158
image:Optional[bool]=None, video:Optional[bool]=None, prioritydomain:Optional[str]=None, page:Optional[str]=None, scroll:Optional[bool]=False,
159159
max_result:Optional[int]=None, qInMeta:Optional[str]=None, tag:Optional[Union[str,list]]=None, sentiment:Optional[str]=None,
160-
region:Optional[Union[str,list]]=None,excludefield:Optional[Union[str,list]]=None
160+
region:Optional[Union[str,list]]=None,excludefield:Optional[Union[str,list]]=None,removeduplicate:Optional[bool]=None
161161
)->dict:
162162
"""
163163
Sending GET request to the news api.
@@ -167,7 +167,7 @@ def news_api(
167167
params = {
168168
'apikey':self.apikey,'q':q,'qInTitle':qInTitle,'country':country,'category':category,'language':language,'domain':domain,'timeframe':str(timeframe) if timeframe else timeframe,
169169
'size':size,'domainurl':domainurl,'excludedomain':excludedomain,'timezone':timezone,'full_content':full_content,'image':image,'video':video,'prioritydomain':prioritydomain,
170-
'page':page,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment, 'region':region,'excludefield':excludefield
170+
'page':page,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment, 'region':region,'excludefield':excludefield,'removeduplicate':removeduplicate
171171
}
172172
URL_parameters = {}
173173
for key,value in params.items():
@@ -186,7 +186,7 @@ def latest_api(
186186
domainurl:Optional[Union[str, list]]=None, excludedomain:Optional[Union[str, list]]=None, timezone:Optional[str]=None, full_content:Optional[bool]=None,
187187
image:Optional[bool]=None, video:Optional[bool]=None, prioritydomain:Optional[str]=None, page:Optional[str]=None, scroll:Optional[bool]=False,
188188
max_result:Optional[int]=None, qInMeta:Optional[str]=None, tag:Optional[Union[str,list]]=None, sentiment:Optional[str]=None,
189-
region:Optional[Union[str,list]]=None,excludefield:Optional[Union[str,list]]=None
189+
region:Optional[Union[str,list]]=None,excludefield:Optional[Union[str,list]]=None,removeduplicate:Optional[bool]=None
190190
)->dict:
191191
"""
192192
Sending GET request to the latest api.
@@ -195,7 +195,7 @@ def latest_api(
195195
params = {
196196
'apikey':self.apikey,'q':q,'qInTitle':qInTitle,'country':country,'category':category,'language':language,'domain':domain,'timeframe':str(timeframe) if timeframe else timeframe,
197197
'size':size,'domainurl':domainurl,'excludedomain':excludedomain,'timezone':timezone,'full_content':full_content,'image':image,'video':video,'prioritydomain':prioritydomain,
198-
'page':page,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment, 'region':region,'excludefield':excludefield
198+
'page':page,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment, 'region':region,'excludefield':excludefield,'removeduplicate':removeduplicate
199199
}
200200
URL_parameters = {}
201201
for key,value in params.items():
@@ -213,7 +213,7 @@ def archive_api(
213213
language:Optional[Union[str, list]]=None, domain:Optional[Union[str, list]]=None, size:Optional[int]=None,domainurl:Optional[Union[str, list]]=None,
214214
excludedomain:Optional[Union[str, list]]=None, timezone:Optional[str]=None, full_content:Optional[bool]=None,image:Optional[bool]=None,
215215
video:Optional[bool]=None,prioritydomain:Optional[str]=None, page:Optional[str]=None, scroll:Optional[bool]=False, max_result:Optional[int]=None,
216-
from_date:Optional[str]=None, to_date:Optional[str]=None, qInMeta:Optional[str]=None, cryptofeeds:Optional[bool]=None,excludefield:Optional[Union[str,list]]=None
216+
from_date:Optional[str]=None, to_date:Optional[str]=None, qInMeta:Optional[str]=None, excludefield:Optional[Union[str,list]]=None
217217
) -> dict:
218218
"""
219219
Sending GET request to the archive api
@@ -222,7 +222,7 @@ def archive_api(
222222
params = {
223223
'q':q,'qInTitle':qInTitle,'country':country,'category':category,'language':language,'domain':domain,'size':size,'domainurl':domainurl,'excludedomain':excludedomain,
224224
'timezone':timezone,'full_content':full_content,'image':image,'video':video,'prioritydomain':prioritydomain,'page':page,'from_date':from_date,'to_date':to_date,
225-
'apikey':self.apikey,'qInMeta':qInMeta,'cryptofeeds':cryptofeeds,'excludefield':excludefield
225+
'apikey':self.apikey,'qInMeta':qInMeta,'excludefield':excludefield
226226
}
227227
URL_parameters = {}
228228
for key,value in params.items():
@@ -255,7 +255,8 @@ def crypto_api(
255255
timeframe:Optional[Union[int,str]]=None, size:Optional[int]=None,domainurl:Optional[Union[str, list]]=None, excludedomain:Optional[Union[str, list]]=None,
256256
timezone:Optional[str]=None, full_content:Optional[bool]=None,image:Optional[bool]=None, video:Optional[bool]=None, prioritydomain:Optional[str]=None,
257257
page:Optional[str]=None, scroll:Optional[bool]=False,max_result:Optional[int]=None, qInMeta:Optional[str]=None,tag:Optional[Union[str,list]]=None,
258-
sentiment:Optional[str]=None,coin:Optional[Union[str, list]]=None,excludefield:Optional[Union[str,list]]=None
258+
sentiment:Optional[str]=None,coin:Optional[Union[str, list]]=None,excludefield:Optional[Union[str,list]]=None,from_date:Optional[str]=None,
259+
to_date:Optional[str]=None,removeduplicate:Optional[bool]=None
259260
)->dict:
260261
"""
261262
Sending GET request to the crypto api
@@ -265,7 +266,8 @@ def crypto_api(
265266
params = {
266267
'apikey':self.apikey,'q':q,'qInTitle':qInTitle,'language':language,'domain':domain,'size':size,'domainurl':domainurl,
267268
'excludedomain':excludedomain,'timezone':timezone,'full_content':full_content,'image':image,'video':video,'prioritydomain':prioritydomain,'page':page,
268-
'timeframe':str(timeframe) if timeframe else timeframe,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment,'coin':coin,'excludefield':excludefield
269+
'timeframe':str(timeframe) if timeframe else timeframe,'qInMeta':qInMeta,'tag':tag, 'sentiment':sentiment,'coin':coin,'excludefield':excludefield,
270+
'from_date':from_date,'to_date':to_date,'removeduplicate':removeduplicate
269271
}
270272
URL_parameters = {}
271273
for key,value in params.items():

0 commit comments

Comments
 (0)