diff --git a/.env.local.example b/.env.local.example index b1db52a9f..dd28ce2f0 100644 --- a/.env.local.example +++ b/.env.local.example @@ -21,3 +21,4 @@ NEXT_GROUP_TELEGRAM=TELEGRAM_GROUP_OR_CHANNEL_ID NEXT_MESSAGE_THREAD_ID=YOUR_MESSAGE_THREAD_ID API_KEY_AQUIFER=YOUR_AQUIFER_API_KEY +GIT_DOOR43_BEARER_TOKEN=YOUR_GIT_DOOR43_API_KEY diff --git a/.vscode/settings.json b/.vscode/settings.json index d33115c03..e979d8b5e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,6 @@ "editor.formatOnSave": true }, "files.eol": "\n", - "editor.tabSize": 2 + "editor.tabSize": 2, + "i18next.i18nPaths": "d:/Gecraft/level/public/locales" } diff --git a/components/Project/Download.js b/components/Project/Download.js index 303512bfb..ed052269d 100644 --- a/components/Project/Download.js +++ b/components/Project/Download.js @@ -15,6 +15,8 @@ import ButtonLoading from 'components/ButtonLoading' import CheckBox from 'components/CheckBox' import ListBox from 'components/ListBox' +import gitDoorAxios from '../../lib/axios' + import { newTestamentList, obsStoryVerses, usfmFileNames } from 'utils/config' import { compileChapter, @@ -295,7 +297,7 @@ function Download({ const repo = parts[4].split('_')[0] + '_tw' const owner = parts[3] const newUrl = `${baseUrl}/${owner}/${repo}/archive/master.zip` - const response = await axios.get(newUrl, { responseType: 'arraybuffer' }) + const response = await gitDoorAxios.get(newUrl, { responseType: 'arraybuffer' }) const zip = new JSZip() await zip.loadAsync(response.data) const newZip = new JSZip() @@ -335,7 +337,7 @@ function Download({ usfmFileNames[bookCode] }` try { - const response = await axios.get(newUrl) + const response = await gitDoorAxios.get(newUrl) return response.data } catch (error) { console.error('Error fetching original USFM:', error) @@ -356,7 +358,7 @@ function Download({ acc[chapter] = 0 return acc }, {}) - const methods = await axios.get('/api/methods') + const methods = await gitDoorAxios.get('/api/methods') const method = methods.data.find((method) => method.title === project.method) if (!method?.offline_steps) { return null @@ -384,7 +386,7 @@ function Download({ const url = resourcesUrls[resource] try { if (resource === 'obs') { - const response = await axios.get(url, { responseType: 'arraybuffer' }) + const response = await gitDoorAxios.get(url, { responseType: 'arraybuffer' }) if (response.status !== 200) throw new Error(`Failed to fetch OBS archive: ${url}`) diff --git a/lib/axios.js b/lib/axios.js new file mode 100644 index 000000000..78ea1b927 --- /dev/null +++ b/lib/axios.js @@ -0,0 +1,15 @@ +import axios from 'axios' + +const instance = axios.create() + +instance.interceptors.request.use((config) => { + const token = process.env.GIT_DOOR43_BEARER_TOKEN + + if (token) { + config.headers.Authorization = `Bearer ${token}` + } + + return config +}) + +export default instance diff --git a/pages/api/git/bible.js b/pages/api/git/bible.js index d6b8b91d2..e4ba32320 100644 --- a/pages/api/git/bible.js +++ b/pages/api/git/bible.js @@ -1,6 +1,7 @@ -import axios from 'axios' import usfm from 'usfm-js' +import axios from '../../../lib/axios' + import { parseChapter } from 'utils/usfmHelper' /** diff --git a/pages/api/git/info.js b/pages/api/git/info.js index 684e42929..8332914e5 100644 --- a/pages/api/git/info.js +++ b/pages/api/git/info.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/info: diff --git a/pages/api/git/obs-tn.js b/pages/api/git/obs-tn.js index 8fe22bba0..0f5eab9f5 100644 --- a/pages/api/git/obs-tn.js +++ b/pages/api/git/obs-tn.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + import { filterNotes } from 'utils/helper' /** diff --git a/pages/api/git/obs-tq.js b/pages/api/git/obs-tq.js index 3bb0c565d..18eec6d30 100644 --- a/pages/api/git/obs-tq.js +++ b/pages/api/git/obs-tq.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/obs-tq: diff --git a/pages/api/git/obs-twl.js b/pages/api/git/obs-twl.js index f8da06cc3..728bb5f7e 100644 --- a/pages/api/git/obs-twl.js +++ b/pages/api/git/obs-twl.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/obs-twl: diff --git a/pages/api/git/obs.js b/pages/api/git/obs.js index 52b773255..46743b884 100644 --- a/pages/api/git/obs.js +++ b/pages/api/git/obs.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from '../../../lib/axios' import { mdToJson } from 'utils/helper' diff --git a/pages/api/git/ta.js b/pages/api/git/ta.js index c544d9ea8..213951871 100644 --- a/pages/api/git/ta.js +++ b/pages/api/git/ta.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from '../../../lib/axios' /** * @swagger diff --git a/pages/api/git/tn.js b/pages/api/git/tn.js index b3a13bc00..ee4e3f6de 100644 --- a/pages/api/git/tn.js +++ b/pages/api/git/tn.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { tsvToJSON } from '@texttree/tn-quote' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/tn: diff --git a/pages/api/git/tq.js b/pages/api/git/tq.js index 398cd4aff..d87aa9d59 100644 --- a/pages/api/git/tq.js +++ b/pages/api/git/tq.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/tq: diff --git a/pages/api/git/tw.js b/pages/api/git/tw.js index 0db00d588..122f0d8e3 100644 --- a/pages/api/git/tw.js +++ b/pages/api/git/tw.js @@ -1,4 +1,4 @@ -import axios from 'axios' +import axios from '../../../lib/axios' /** * @swagger diff --git a/pages/api/git/twl.js b/pages/api/git/twl.js index 94471e14b..865219eae 100644 --- a/pages/api/git/twl.js +++ b/pages/api/git/twl.js @@ -1,7 +1,7 @@ -import axios from 'axios' - import { markRepeatedWords, tsvToJson } from '@texttree/translation-words-helpers' +import axios from '../../../lib/axios' + /** * @swagger * /api/git/twl: diff --git a/pages/api/git/whole-book.js b/pages/api/git/whole-book.js index cf220bd8f..2396d94e8 100644 --- a/pages/api/git/whole-book.js +++ b/pages/api/git/whole-book.js @@ -1,6 +1,7 @@ -import axios from 'axios' import usfm from 'usfm-js' +import axios from '../../../lib/axios' + import { parseChapter } from 'utils/usfmHelper' /** diff --git a/utils/helper.js b/utils/helper.js index 0c9880612..3315ec374 100644 --- a/utils/helper.js +++ b/utils/helper.js @@ -4,6 +4,7 @@ import usfm from 'usfm-js' import { JsonToPdf } from '@texttree/obs-format-convert-rcl' +import gitDoorAxios from '../lib/axios' import { obsStoryVerses } from './config' const isServer = typeof window === 'undefined' @@ -404,7 +405,7 @@ export const parseManifests = async ({ resources, current_method }) => { const urlArray = pathname.split('/') const url = getBaseResourceUrl(urlArray) const manifestUrl = getBaseResourceUrl(urlArray) + '/manifest.yaml' - const { data } = await axios.get(manifestUrl) + const { data } = await gitDoorAxios.get(manifestUrl) const manifest = jsyaml.load(data, { json: true }) if (current_method.resources[el]) { @@ -474,7 +475,7 @@ export const getCountChaptersAndVerses = async ({ link, book_code }) => { } try { - const { data } = await axios.get(link) + const { data } = await gitDoorAxios.get(link) return calculateChaptersAndVerses(data) } catch (error) { return { data: null, error }