Skip to content

Commit 4431623

Browse files
authored
Merge pull request #752 from Thoth2023/develop
Develop -> main
2 parents 9bf9db6 + 95ec3a5 commit 4431623

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

app/Jobs/AtualizarDadosSemantic.php

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ public function handle()
3232
Log::info("Iniciando atualização via Semantic Scholar para o paper ID {$this->paperId}");
3333

3434
$service = new SnowballingService();
35+
36+
// priorizar o DOI se existir
3537
$query = !empty($this->doi) ? $this->doi : $this->title;
3638

3739
$result = $service->fetch($query);
@@ -49,20 +51,29 @@ public function handle()
4951
return;
5052
}
5153

52-
// Atualizar campos conforme tipo de consulta (via DOI ou via título)
53-
if (empty($this->doi) && !empty($this->title)) {
54-
// Atualização via título → preencher DOI
55-
$paper->doi = $article['doi'] ?? $paper->doi;
56-
} elseif (!empty($this->doi) && empty($this->title)) {
57-
// Atualização via DOI → preencher título
54+
// Atualizar sempre via DOI se disponível
55+
if (!empty($this->doi)) {
56+
// Atualização via DOI → pode atualizar título
5857
$paper->title = $article['title'] ?? $paper->title;
58+
} elseif (!empty($this->title)) {
59+
// Atualização via título → pode preencher DOI
60+
$paper->doi = $article['doi'] ?? $paper->doi;
5961
}
6062

61-
// Atualizar campos comuns
63+
//Atualizar campos comuns
6264
$paper->abstract = $article['abstract'] ?? $paper->abstract;
6365
$paper->keywords = $this->extractKeywords($article);
6466
$paper->author = $article['authors'] ?? $paper->author;
6567

68+
//Atualizar URL (com fallback para DOI se vier vazio)
69+
if (!empty($article['url'])) {
70+
$paper->url = $article['url'];
71+
} elseif (!empty($paper->doi)) {
72+
$paper->url = str_contains($paper->doi, 'http')
73+
? $paper->doi
74+
: 'https://doi.org/' . ltrim($paper->doi);
75+
}
76+
6677
$paper->save();
6778

6879
Log::info("Atualização via Semantic Scholar concluída para o paper ID {$this->paperId}");
@@ -77,7 +88,7 @@ private function extractKeywords(array $article): string
7788
return $article['keywords'];
7889
}
7990

80-
// Fallback: tentar inferir palavras-chave a partir do abstract
91+
// Fallback: gerar palavras-chave a partir do abstract
8192
if (!empty($article['abstract'])) {
8293
$abstract = strtolower($article['abstract']);
8394
$words = array_filter(explode(' ', $abstract), fn($w) => strlen($w) > 6);

app/Livewire/Conducting/StudySelection/ButtonsUpdatePaper.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,10 @@ public function atualizarDadosSemantic()
7676
return;
7777
}
7878

79-
Log::info("Despachando Job para atualização via Semantic Scholar para paper ID {$this->paperId}");
79+
// Se houver título e DOI → priorizar DOI
80+
$queryType = !empty($this->doi) ? 'DOI' : 'Título';
81+
Log::info("Atualizando via Semantic Scholar ({$queryType}) → paper ID {$this->paperId}");
82+
8083
AtualizarDadosSemantic::dispatch($this->paperId, $this->doi, $this->title);
8184

8285
$this->toast(__('project/conducting.study-selection.modal.buttons.semantic.success'), 'success');

0 commit comments

Comments
 (0)