Йоу! Недавно я столкнулся с задачей отправки различных поисковых запросов на arxiv.org API на Java/Kotlin, и в результате этого я и мои товарищи решили реализовать его как библиотеку ArxivApiAccess с открытым исходным кодом.
Простой трек, чтобы использовать его
Например, если вы хотите найти последние 20 статей о Java или Kotlin, это можно сделать следующим кодом:
val request: SearchRequest = SearchRequest.SearchRequestBuilder .create("Java", SearchField.ALL) .or("Kotlin", SearchField.ALL) .sortBy(SortBy.LAST_UPTATED_DATE) .sortOrder(SortOrder.DESCENDING) .maxResults(20) .build() val response: Feed = SearchRequestExecutor().executeAndMap(request) println(response)
Кроме того, вы можете загрузить все статьи по вашему запросу и сохранить их в файл или реализовать функцию обратного вызова, как вы хотите:
val subjectCategory = "astro-ph" val fileToSave = "../arxiv_data_sets/${subjectCategory}.csv" val request = SearchRequest.SearchRequestBuilder .create(subjectCategory, SearchField.SUBJECT_CATEGORY) .build() loadAllByRequest(request, { feed -> // Donwload to file val writer = FileWriter(fileToSave, true) writer.use { feed.entry?.forEach { val authorString = it.author.joinToString(", ") { author -> author.name } val resultString = "${it.updated}|${subjectCategory}|${it.title}|${authorString}".replace("\n", "") writer.write("${resultString}\n") } writer.close() } println("parsed ${feed.startIndex+feed.itemsPerPage}/${feed.totalResults}") }) // return false to stop a process of the parsing true
Или вы можете найти все статьи о Java или Kotlin за последние 30 дней:
val request: SearchRequest = SearchRequest.SearchRequestBuilder .create("Java", SearchField.ALL) .or("Kotlin", SearchField.ALL) .build() var list = searchAllAfterDate(request, Date(System.currentTimeMillis() - TimeUnit.MILLISECONDS.convert(30, TimeUnit.DAYS))) println(list)
Начало работы с Maven
... myMavenRepoRead https://mymavenrepo.com/repo/m3NxrnIEacYdXdF77zDL/ olegthelilfix ArxivApiAccess ${ArxivApiAccess.version}
Текущая версия – 0.2-RELEASE. Более подробную информацию о проекте вы можете найти в репозитории проекта.
Инструменты для препринтов исследований/Доступ к Api Arxiv
это библиотека Kotlin для выполнения поисковых запросов к API Arvix.org
Будущее проекта
Текущая версия проекта не является окончательной, и я планирую продолжить проект. Первый заключается в стабилизации текущей функциональности. Второй заключается в расширении возможностей библиотеки взаимодействовать с arxiv.org API и так далее. Не стесняйтесь писать мне обо всем.
Оригинал: “https://dev.to/olegthelilfix/the-new-open-source-library-to-access-to-arxiv-org-api-53cj”