Open obulat opened 3 years ago
The Noun Project API requires a search query and does not allow using wildcards (*
) to paginate through all results. While that's the case, I'm not sure it'll be possible to add them as a provider in Openverse.
Another note from the API documentation:
Asset URLs are temporary and will expire within an hour after the call. Following that duration, a new call will be required to retrieve a new asset URL.
It looks like this refers to generated thumbnail urls, so we would not be able to use those. A sample icon within the API response looks like this:
{
"attribution": "Cat by Raúl Inc from Noun Project",
"collections": [],
"creator": {
"name": "Raúl Inc",
"permalink": "/rlinze",
"username": "rlinze"
},
"id": "49952",
"license_description": "public-domain",
"permalink": "/term/cat/49952",
"tags": [
"cat",
"animal",
"domesticated",
"feline",
"kitten",
"kitty",
"kitty-cat",
"mammal",
"pet"
],
"term": "Cat",
"thumbnail_url": "https://static.thenounproject.com/png/49952-200.png",
"updated_at": "2019-04-22 19:22:17"
},
https://thenounproject.com/term/cat/49952/ redirects to https://thenounproject.com/icon/cat-49952/
This issue has been migrated from the CC Search Catalog repository
Provider API Endpoint / Documentation
http://api.thenounproject.com/
Provider description
The Noun Project API provides a collection of icons and photos.
Licenses Provided
CC BY 3.0 Public Domain Mark 1.0
Provider API Technical info
Rate Limits: 5000 requests/month Overall volume: 3 million (Rough Indication)
Checklist to complete before beginning development
No development should be done on a Provider API Script until the following info is gathered:
General Recommendations for implementation
src/cc_catalog_airflow/dags/provider_api_scripts/
directory.ImageStore
class (Import this fromsrc/cc_catalog_airflow/dags/provider_api_scripts/common/storage/image.py
).DelayedRequester
class (Import this fromsrc/cc_catalog_airflow/dags/provider_api_scripts/common/requester.py
).src/cc_catalog_airflow/dags/provider_api_scripts/modules/etlMods.py
, since that module is deprecated.--date
parameter when run as a script, giving the date for which we should collect images. The form should beYYYY-MM-DD
(so, the script can be run viapython my_favorite_provider.py --date 2018-01-01
).my_favorite_provider.main(date)
. The main should do the same thing calling from the CLI would do.pycodestyle
(available viapip install pycodestyle
) to check for compliance.Examples of other Provider API Scripts
For example Provider API Scripts and accompanying test suites, please see
src/cc_catalog_airflow/dags/provider_api_scripts/flickr.py
andsrc/cc_catalog_airflow/dags/provider_api_scripts/test_flickr.py
, orsrc/cc_catalog_airflow/dags/provider_api_scripts/wikimedia_commons.py
andsrc/cc_catalog_airflow/dags/provider_api_scripts/test_wikimedia_commons.py
.Original Comments:
Issue author dravadhis commented on Fri Oct 23 2020:
Issue author dravadhis commented on Wed Oct 28 2020:
mathemancer commented on Thu Oct 29 2020: