Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: country flags #96

Merged
merged 14 commits into from
Jun 1, 2020
Merged

feat: country flags #96

merged 14 commits into from
Jun 1, 2020

Conversation

lazyweirdo
Copy link
Contributor

@lazyweirdo lazyweirdo commented May 10, 2020

In reference to #48 ... now it makes requests to ip-api.com (which is free, inside its imposed limits) to show a country flag for every gateway listed.

@jessicaschilling @Stebalien

Test it https://lazyweirdo.github.io/public-gateway-checker/
A good contribution would be to cache country codes in cookies or localStorage for a week, in order to make less requests to ip-api.com ...

@jessicaschilling
Copy link
Contributor

@Stebalien - are you able to have a look as you’re able? Thank you!

@lazyweirdo, just a note that I believe he’s AFK on Monday. I’ll keep tabs, though.

@lazyweirdo
Copy link
Contributor Author

If ip-api.com does not work, we could change to http://api.ipinfodb.com ... let me know

@Stebalien Stebalien requested a review from lidel May 12, 2020 06:31
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lazyweirdo this is really cool!

But.. we should avoid third party services if possible 😬

Please take a look at https://github.com/ipfs/ipfs-geoip/ instead.
It is used by Peers screen in ipfs-webui.

I suspect you should be able to use ipfs-geoip with ipfs-http-client set up with ipfs.io as "HTTP API".
IIUC the public gateway at ipfs.io exposes necessary /api/v0/object/get endpoint:

@lazyweirdo
Copy link
Contributor Author

lazyweirdo commented May 13, 2020

well ... i'll give it a try , but it doesn't seem to support domain names ... i don't know yet

@lidel
Copy link
Member

lidel commented May 13, 2020

I think its ok to use standard DNS over HTTPS from Cloudflare for now for hostIP step.

To make things easier use JSON output, set Accept header in the request:

curl -H 'accept: application/dns-json' 'https://cloudflare-dns.com/dns-query?name=ipfs.io&type=A'

@lazyweirdo
Copy link
Contributor Author

lazyweirdo commented May 19, 2020

@lidel check this out, let me know any other change you would do ...
Test it https://lazyweirdo.github.io/public-gateway-checker/

@lazyweirdo lazyweirdo requested a review from lidel May 20, 2020 12:07
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works as expected and looks neat, remaining part is to avoid committing JS blob to the repo – see concern below.

index.html Outdated Show resolved Hide resolved
@lazyweirdo lazyweirdo requested a review from lidel May 20, 2020 21:45
@lazyweirdo
Copy link
Contributor Author

@lidel recheck

Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's wait for ipfs-shipyard/ipfs-geoip#74 to land, it should make it possible for you to use ipfs-geoip the same way as you switched to prepackaged ipfs-http-client in a44ae00

@lidel
Copy link
Member

lidel commented May 26, 2020

@lazyweirdo try now:

Released as ipfs-geoip@4.1.0, bundle is at: https://cdn.jsdelivr.net/npm/ipfs-geoip@4.1.0/dist/index.min.js, when loaded you should have access to window.IpfsGeoip

this should remove the need for any blobs in geoip.js – let me know if you get blocked by anything else

@lazyweirdo
Copy link
Contributor Author

@lidel done

@lazyweirdo lazyweirdo requested a review from lidel May 29, 2020 11:29
lidel added 2 commits June 1, 2020 22:17
License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
License: MIT
Signed-off-by: Marcin Rataj <lidel@lidel.org>
Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @lazyweirdo, works as advertised 👍

(I removed unused code blob from prior iterations
and added SRI hashes to ensure CDN can't inject arbitrary code)

@lidel
Copy link
Member

lidel commented Jun 1, 2020

@lazyweirdo before we merge this: what is the licensing situation of the SVG files? where did you source them from? Should we add credit / author to README?

@lazyweirdo
Copy link
Contributor Author

lazyweirdo commented Jun 1, 2020

@lidel here https://github.com/hjnilsson/country-flags , he says:

The source files were taken from Wikipedia and are not under copyright protection since flags are effectively in public domain (there may be other restrictions on how the flag can be used though)

I also made modifications to source files, don't remember exactly what i needed, but i remember open and saving with krita ...

@lidel
Copy link
Member

lidel commented Jun 1, 2020

Thanks for explanation!

I guess we could load flags from https://cdn.jsdelivr.net/npm/svg-country-flags@1.2.7/svg/ but I like having them on IPFS path, that way companion loads them from local node instead.

Let's leave it as is.

@lidel lidel changed the title Country flags added feat: country flags Jun 1, 2020
@lidel lidel merged commit 84a31fe into ipfs:master Jun 1, 2020
github-actions bot pushed a commit that referenced this pull request Apr 17, 2023
## 1.0.0 (2023-04-17)

### Features

* /ipns/ check ([#313](#313)) ([10a5c13](10a5c13))
* add countly metrics ([#309](#309)) ([c727202](c727202))
* add cthd.icu ([#294](#294)) ([a2e0102](a2e0102))
* add https://ipfs.czip.it ([#374](#374)) ([f3dde51](f3dde51))
* add https://ipfs.joaoleitao.org ([#323](#323)) ([787f131](787f131))
* add ipfs.1-2.dev ([#169](#169)) ([c764ad6](c764ad6))
* add ipfs.drink.cafe ([#116](#116)) ([cc84899](cc84899))
* add ipfs.jpu.jp ([#348](#348)) ([b52b8c7](b52b8c7))
* add ipfs.litnet.work ([#222](#222)) ([1fd2e68](1fd2e68))
* add ipfs.pinksheep.whizzzkid.dev ([#326](#326)) ([d40a2c1](d40a2c1))
* add ipfs.soul-network.com ([#389](#389)) ([57fe04d](57fe04d))
* add nftstorage.link gateway ([#204](#204)) ([e588108](e588108))
* add Onion Gateway (TOR)  fzdqwfb5ml56oadins5jpuhe6ki6bk33umri35p5kt2tue4fpws5efid.onion ([#212](#212)) ([01ff12f](01ff12f))
* add w3s.link gateway ([#288](#288)) ([000a26f](000a26f))
* country flags ([#96](#96)) ([84a31fe](84a31fe))
* Create CODEOWNERS ([#283](#283)) ([b62b41c](b62b41c))
* Deleted https://ipfs.czip.it ([#393](#393)) ([77d67a4](77d67a4))
* Implementing Trustless Server Checks ([#310](#310)) ([4a2c926](4a2c926))
* improved Origin detection via img tag ([#117](#117)) ([8407e80](8407e80))
* improved origin isolation check ([#148](#148)) ([abd4c1c](abd4c1c))
* Introducing Service Worker For Cache Busting ([#357](#357)) ([0536782](0536782))
* new gateway https://ipfs.tayfundogdas.me/ipfs ([#321](#321)) ([9d5b552](9d5b552))
* remove ipfs.foxgirl.dev ([#155](#155)) ([15fd028](15fd028))
* remove smartsignature.io ([#146](#146)) ([77b45b6](77b45b6))
* subdomain gateways and Origin isolation check ([#78](#78)) ([afcbffa](afcbffa))
* update geoip dataset (2020-10-13) ([4187738](4187738))
* update geoip dataset (2020-10-13) ([#115](#115)) ([782b66b](782b66b))
* use typescript ([#194](#194)) ([10958e6](10958e6))

### Bug Fixes

* ⏪ Reverting [#323](#323): ipfs.joaoleitao.org ([#394](#394)) ([b5bb34c](b5bb34c))
* **ci:** add empty commit to fix lint checks on master ([3ae6aa0](3ae6aa0))
* **ci:** skip test if no code changed ([#210](#210)) ([7d6d628](7d6d628))
* cleanup entries missing DNS A record ([#180](#180)) ([2b7ad30](2b7ad30))
* do not redirect IPNS checks ([#325](#325)) ([79bb51d](79bb51d))
* flag column and new ipfs-geoip dataset ([#319](#319)) ([f5fc723](f5fc723))
* metrics consent prompt location and styling ([#353](#353)) ([e709f2b](e709f2b))
* npm start should work without prior cmds ([#307](#307)) ([7ebe2e5](7ebe2e5))
* opt-out from redirects done by browser extension ([6dd5f51](6dd5f51))
* origin typo ([#200](#200)) ([d198abb](d198abb))
* **origin:** confirm paths redirect to subdomain ([#156](#156)) ([b837a35](b837a35))
* remove heart ([#332](#332)) ([f61ec84](f61ec84))
* update ipfs.ivoputzer.xyz gateway entry ([#152](#152)) ([4b760d9](4b760d9))
* update metrics collection banner to modal with management toggle settings ([#373](#373)) ([d925b36](d925b36))
* update redirect opt-out symbol to final version ([efd5dbf](efd5dbf))

### Trivial Changes

* **deps-dev:** bump aegir from 36.2.3 to 37.5.5 ([#305](#305)) ([1d62fc3](1d62fc3))
* **deps-dev:** bump aegir from 37.5.5 to 37.5.6 ([#316](#316)) ([d3cd9bd](d3cd9bd))
* **deps-dev:** bump browserslist from 4.19.3 to 4.21.4 ([#295](#295)) ([7850071](7850071))
* **deps-dev:** bump eslint-config-ipfs from 2.1.0 to 3.1.1 ([#300](#300)) ([f1bce91](f1bce91))
* **deps-dev:** bump eslint-config-ipfs from 3.1.1 to 3.1.2 ([#315](#315)) ([0506c19](0506c19))
* **deps-dev:** bump ipfs from 0.62.1 to 0.64.2 ([#296](#296)) ([d47e503](d47e503))
* **deps-dev:** bump ipfs from 0.64.2 to 0.65.0 ([#322](#322)) ([b400349](b400349))
* **deps-dev:** bump typescript from 4.6.2 to 4.8.3 ([#293](#293)) ([c56afa1](c56afa1))
* **deps-dev:** bump typescript from 4.8.3 to 4.8.4 ([#304](#304)) ([899b4fc](899b4fc))
* **deps:** bump @dutu/rate-limiter from v1.3.0 to v1.3.1 ([#299](#299)) ([5e598e8](5e598e8))
* **deps:** bump aegir from 36.1.3 to 36.2.3 ([#202](#202)) ([8fa5851](8fa5851))
* **deps:** bump jpeg-js from 0.4.3 to 0.4.4 ([#253](#253)) ([65f99f3](65f99f3))
* **deps:** ipfs-http-client@58.0.1 ([#308](#308)) ([1bcda7c](1bcda7c))
* improve submission/PR info ([#119](#119)) ([a238f3f](a238f3f))
* improved security notes ([#151](#151)) ([5893f35](5893f35)), closes [#148](#148) [/github.com//pull/151#issuecomment-857193370](https://github.com/ipfs//github.com/ipfs/public-gateway-checker/pull/151/issues/issuecomment-857193370)
* ipfs-geoip v5 ([0d8091e](0d8091e))
* ipfs-geoip@8.0.0 ([c4e8180](c4e8180))
* readme cleanup ([798777e](798777e))
* remove dead hostnames ([#280](#280)) ([e861280](e861280))
* remove expired domains ([#179](#179)) ([16c9985](16c9985))
* remove ipfs-zod.tv ([#234](#234)) ([6f79a80](6f79a80))
* removed birds-are-nice.me ([#173](#173)) ([ff2e05c](ff2e05c)), closes [#172](#172)
* removing my gateway for now ([#335](#335)) ([cf61e68](cf61e68))
* style formatting and linting fixes ([#366](#366)) ([a81d48b](a81d48b))
* Update .github/workflows/stale.yml [skip ci] ([5fc4a68](5fc4a68))
* update readme with link to fleek ([#337](#337)) ([3dc5dbe](3dc5dbe))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants