Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | rename fatcat_scholar.hacks to fatcat_scholar.web_hacks | Bryan Newbold | 2022-08-12 | 1 | -1/+1 |
| | |||||
* | polish RSS feed generation, and add basic test coverage | Bryan Newbold | 2022-04-06 | 1 | -60/+62 |
| | |||||
* | small tweaks to RSS feed | Bryan Newbold | 2022-03-25 | 1 | -1/+3 |
| | |||||
* | initial implementation of RSS search feeds | Bryan Newbold | 2022-03-25 | 1 | -0/+59 |
| | | | | UI integration needs work | ||||
* | i18n templates are a global, so capitalize | Bryan Newbold | 2022-03-01 | 1 | -8/+8 |
| | |||||
* | web: update docs for LangPrefix | Bryan Newbold | 2022-01-11 | 1 | -4/+6 |
| | |||||
* | codespell fixes | Bryan Newbold | 2021-11-24 | 1 | -1/+1 |
| | |||||
* | make fmt (black 21.9b0) | Bryan Newbold | 2021-10-27 | 1 | -7/+19 |
| | |||||
* | re-style imports (isort) on all core python files | Bryan Newbold | 2021-10-27 | 1 | -16/+15 |
| | |||||
* | mark TODOs inline | Bryan Newbold | 2021-10-12 | 1 | -0/+2 |
| | |||||
* | web: access_redirect_fallback mechanism | Bryan Newbold | 2021-07-26 | 1 | -66/+160 |
| | | | | | | | | | | | | This adds a helper code path that "tries harder" to find an access link, by querying the fatcat API directly to look for any file from any release associated with the work. If it finds a match, it does the redirect as usual (but does log the incident). If no match can be found, there is now a more helpful access-specific 404 error page. If the *work* is a 404, the generic error page is shown. | ||||
* | update access redirect URL endpoints | Bryan Newbold | 2021-06-11 | 1 | -32/+51 |
| | |||||
* | lint: ignore mypy on some template imports | Bryan Newbold | 2021-06-02 | 1 | -2/+2 |
| | |||||
* | web: fixes to access redirect endpoints | Bryan Newbold | 2021-05-19 | 1 | -1/+6 |
| | |||||
* | enable Greek (el) translation (still partial) | Bryan Newbold | 2021-05-18 | 1 | -0/+1 |
| | |||||
* | iterate on PDF redirect links | Bryan Newbold | 2021-05-17 | 1 | -31/+34 |
| | |||||
* | enable initial Korean (ko) web interface translation | Bryan Newbold | 2021-04-30 | 1 | -0/+1 |
| | |||||
* | web: sitemap.xml serving | Bryan Newbold | 2021-04-29 | 1 | -0/+6 |
| | |||||
* | iterate on access redirects and landing page implementation | Bryan Newbold | 2021-04-27 | 1 | -0/+1 |
| | | | | Small code refactors and minimal test coverage | ||||
* | web: initial implementation of work landing page and citation_pdf_url access ↵ | Bryan Newbold | 2021-04-23 | 1 | -2/+90 |
| | | | | | | | | | | | | redirect The initial intent is to have something that can be used by indexing services to pull the citation_pdf_url meta tag and bounce to a direct IA PDF access URL. For now the landing page stubs are just formatted as SERP results. Presumbably these will get re-styled at some point and include citation graph links, etc. | ||||
* | change health check from .exists(index) to .mapping(index) | Bryan Newbold | 2021-04-06 | 1 | -2/+2 |
| | | | | | | | | | | | | In cases where the cluser leader node is unavilable, the health check was returning false even when the local node had full shard replicas and could return requests. A refinement of this change would be to use the /<index>/_count API endpoint to ensure that the "failed" and "skipped" shard numbers are 0 (aka, "successful == total"). However, not sure where that endpoint is exposed in the elasticsearch-py API. the CatClient method doesn't seem right. | ||||
* | make fmt | Bryan Newbold | 2021-03-29 | 1 | -1/+10 |
| | |||||
* | don't use async endpoints for sync implementations | Bryan Newbold | 2021-03-29 | 1 | -3/+3 |
| | | | | | | | | | | Embarassingly, I didn't know this was an option in FastAPI! Knew that running `await` on a function that was internally doing blocking calls was really bad, but didn't know the framework had such a simple way to avoid the problem. This significantly resolves operational concerns with the current service. | ||||
* | web and API health check endpoint | Bryan Newbold | 2021-03-29 | 1 | -4/+6 |
| | | | | | | Because scholar is primarily a search service, the endpoint does a pass-through health check to the elasticsearch backend (aka, es-public-proxy). | ||||
* | web: small typos | Bryan Newbold | 2021-03-25 | 1 | -2/+14 |
| | | | | Thanks for catching these gio | ||||
* | implement additional translation languages | Bryan Newbold | 2021-03-23 | 1 | -1/+14 |
| | |||||
* | update to v0.2.0v0.2.0 | Bryan Newbold | 2021-03-23 | 1 | -1/+1 |
| | |||||
* | web: respond to HTTP HEAD / (for uptime monitoring) | Bryan Newbold | 2021-03-05 | 1 | -0/+7 |
| | | | | | Proper HTTP HEAD support for all endpoints would be better, but don't want to break CORS stuff by hacking it. | ||||
* | Revert undesirable changes | Christian Clauss | 2021-02-23 | 1 | -4/+4 |
| | |||||
* | Modernize Python syntax with pyupgrade --py38-plus **/*.py | Christian Clauss | 2021-02-23 | 1 | -4/+4 |
| | |||||
* | fmt and lint fixes (including one actual bug) | Bryan Newbold | 2021-02-15 | 1 | -2/+2 |
| | |||||
* | allow simple GET CORS requests | Bryan Newbold | 2021-02-11 | 1 | -0/+9 |
| | |||||
* | api: handle null 'q' parameter on search endpoint | Bryan Newbold | 2021-02-11 | 1 | -0/+2 |
| | |||||
* | i18n: use babel.numbers.format_number() in web interface | Bryan Newbold | 2021-01-25 | 1 | -0/+2 |
| | |||||
* | revert jinja2 i18n trimmed flag (not correct place) | Bryan Newbold | 2021-01-22 | 1 | -2/+0 |
| | | | | | This doesn't seem to be the right place to add this field, getting a type checking warning. | ||||
* | jinja2: attempt to enable trans trimming by default | Bryan Newbold | 2021-01-22 | 1 | -0/+2 |
| | | | | Not sure this is actually working | ||||
* | add citation query feature (disabled by default) | Bryan Newbold | 2021-01-19 | 1 | -3/+3 |
| | | | | | | This is operationally complex (queries hit 3x backend services!), so not enabled by default. Will need more testing; possibly circuit-breaking. Though haproxy should provide some of that automatically at this point. | ||||
* | lint: fix small bugs and type annotations | Bryan Newbold | 2021-01-18 | 1 | -3/+3 |
| | |||||
* | make fmt | Bryan Newbold | 2021-01-15 | 1 | -8/+13 |
| | |||||
* | api: fix /search test, and mypy error on implementation | Bryan Newbold | 2021-01-15 | 1 | -11/+11 |
| | |||||
* | api: add type annotations for /search response | Bryan Newbold | 2021-01-14 | 1 | -4/+29 |
| | |||||
* | fastapi: /favicon.ico handler | Bryan Newbold | 2021-01-14 | 1 | -1/+5 |
| | | | | | | | HTML responses in the browser should use the indicated path (/static/ia-favicon.ico), but some other responses fall through (like API docs, I think? or unhandled exceptions), so giving up and just handling this route. haproxy should cache if it gets lots of hits. | ||||
* | fastapi: add basic error/exception handler and page | Bryan Newbold | 2021-01-14 | 1 | -1/+30 |
| | |||||
* | i18n: add web interface support for 'hr' (Croatian) | Bryan Newbold | 2020-11-18 | 1 | -1/+1 |
| | | | | Thanks to @milotype for starting this new translation on weblate! | ||||
* | web: fix ngettext() i18n wrapper | Bryan Newbold | 2020-11-05 | 1 | -2/+2 |
| | |||||
* | web: fix lang detection (include 'en') | Bryan Newbold | 2020-10-28 | 1 | -1/+1 |
| | | | | | If a user had any non-english language preference, was defaulting to that, even if 'en' had higher preference. | ||||
* | basic test for issue-db pipeline | Bryan Newbold | 2020-10-23 | 1 | -12/+17 |
| | |||||
* | web: basic Accept-Language HTTP negotiation | Bryan Newbold | 2020-10-22 | 1 | -1/+12 |
| | |||||
* | remove minor unused imports | Bryan Newbold | 2020-10-22 | 1 | -1/+0 |
| | |||||
* | remove spurious debugging print() in robots.txt handler | Bryan Newbold | 2020-10-21 | 1 | -1/+0 |
| |