Conversation
Fix: correção do id do logo da home
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…behavior Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
| response = jsonify({"error": e}) | ||
| response.status_code = 404 | ||
| return response | ||
|
|
There was a problem hiding this comment.
@copilot muito bem! mas será necessário fazer certo tratamento dentro de opac/webapp/main/views.py para obter a URI completa de cada recurso, ou pelo menos, de journal, issue_toc, article_detail. Consegue?
There was a problem hiding this comment.
Implementado! ✅
Agora o sistema constrói URLs completas e específicas para o site clássico para cada tipo de recurso:
Journal (/j/abc/) → {PREVIOUS_WEBSITE_URI}/scielo.php?script=sci_serial&pid={ISSN}&lng={lang}&nrm=iso
Issue (/j/abc/i/v1n1/) → {PREVIOUS_WEBSITE_URI}/scielo.php?script=sci_issuetoc&pid={PID}&lng={lang}&nrm=iso
Article (/j/abc/a/xyz/) → {PREVIOUS_WEBSITE_URI}/scielo.php?script=sci_arttext&pid={PID}&lng={lang}&nrm=iso
O código:
- Detecta automaticamente o tipo de recurso baseado no padrão da URL
- Busca o objeto no banco (journal/issue/article)
- Extrai o PID/ISSN apropriado
- Constrói a URL do site clássico com os parâmetros corretos
- Se não conseguir construir a URL específica, usa o fallback (redirect simples do path)
Commit: e0870ea
…cle resources Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
…lder Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
|
@copilot muito bem! Mas faltou tratar pdf, poderia continuar? |
Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Implementado! ✅ Agora o sistema também trata PDFs: PDF ( O código:
Commit: d0a45fc |
O que esse PR faz?
Implementa redirecionamento automático para o site clássico quando recursos não são encontrados (404), evitando perda de acesso ao conteúdo durante a migração.
Quando
PREVIOUS_WEBSITE_URIestá configurado:scielo.phpcom PIDs/ISSNs apropriadosQuando não configurado: comportamento 404 padrão sem alterações.
Construção de URLs por tipo de recurso:
/j/<url_seg>/): Extrai ISSN do periódico →scielo.php?script=sci_serial&pid={ISSN}&lng={lang}&nrm=iso/j/<url_seg>/i/<url_seg_issue>/): Extrai PID do fascículo →scielo.php?script=sci_issuetoc&pid={PID}&lng={lang}&nrm=iso/j/<url_seg>/a/<article_pid_v3>/): Extrai PID do artigo →scielo.php?script=sci_arttext&pid={PID}&lng={lang}&nrm=iso/pdf/<journal_acron>/<issue_info>/<filename>.pdf): Extrai PID do artigo →scielo.php?script=sci_pdf&pid={PID}&lng={lang}&nrm=isoOnde a revisão poderia começar?
opac/webapp/main/errors.py- funçãopage_not_found()(linhas 35-59) e_build_classic_url_for_resource()(linhas 62-128)opac/webapp/main/helper.py- funçãobuild_classic_website_uri()(linhas 75-133)Como este poderia ser testado manualmente?
export PREVIOUS_WEBSITE_URI="https://old.scielo.br"http://localhost:5000/j/invalid-journal/https://old.scielo.br/scielo.php?script=sci_serial&pid={ISSN}&lng=pt&nrm=isohttps://old.scielo.br/j/invalid-journal/http://localhost:5000/j/valid-journal/i/invalid-issue/http://localhost:5000/j/valid-journal/a/invalid-article/http://localhost:5000/pdf/journal/issue/article.pdfhttps://old.scielo.br/scielo.php?script=sci_pdf&pid={PID}&lng=pt&nrm=isocurl -H "Accept: application/json" http://localhost:5000/j/nao-existe/Para testar sem redirect, não configure
PREVIOUS_WEBSITE_URIe verifique página 404 padrão.Algum cenário de contexto que queira dar?
Durante a transição do site clássico (Web) para o novo (opac_5), nem todo conteúdo foi migrado. Sem este PR, usuários encontram 404 em conteúdo que ainda existe no site clássico.
A variável
PREVIOUS_WEBSITE_URIjá existe e é usada para exibir link do site anterior na navegação. Este PR reutiliza a mesma configuração para implementar redirecionamento automático.Decisões técnicas:
scielo.php?script=...&pid=...diferente das URLs do OPACrouter_legacy_pdfexistenteReferências
opac/webapp/config/default.pylinha 643PREVIOUS_WEBSITE_URI:opac/webapp/templates/collection/includes/nav.htmlopac/tests/fixtures/legacy_urls.txtopac/webapp/main/views.pyfunçãorouter_legacy()(linha 353)opac/webapp/main/views.pyfunçãorouter_legacy_pdf()(linha 1486)Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.