mirror of
https://github.com/Nezumi-2711/onedrive-vercel-index.git
synced 2026-09-22 13:38:45 +00:00
add bulk copy permalink
This commit is contained in:
@@ -268,6 +268,18 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => {
|
||||
}
|
||||
}
|
||||
|
||||
// Get selected file permalink
|
||||
const handleSelectedPermalink = (baseUrl: string) => {
|
||||
return getFiles()
|
||||
.filter(c => selected[c.id])
|
||||
.map(
|
||||
c =>
|
||||
`${baseUrl}/api/raw/?path=${path}/${encodeURIComponent(c.name)}${hashedToken ? `&odpt=${hashedToken}` : ''}`
|
||||
)
|
||||
.reduce((urls, cur) => urls + cur + '\n', '')
|
||||
.slice(0, -1)
|
||||
}
|
||||
|
||||
// Folder recursive download
|
||||
const handleFolderDownload = (path: string, id: string, name?: string) => () => {
|
||||
const files = (async function* () {
|
||||
@@ -324,6 +336,7 @@ const FileListing: FC<{ query?: ParsedUrlQuery }> = ({ query }) => {
|
||||
totalGenerating,
|
||||
handleSelectedDownload,
|
||||
folderGenerating,
|
||||
handleSelectedPermalink,
|
||||
handleFolderDownload,
|
||||
}
|
||||
|
||||
|
||||
@@ -64,6 +64,7 @@ const FolderGridLayout = ({
|
||||
totalGenerating,
|
||||
handleSelectedDownload,
|
||||
folderGenerating,
|
||||
handleSelectedPermalink,
|
||||
handleFolderDownload,
|
||||
toast,
|
||||
}) => {
|
||||
@@ -86,6 +87,17 @@ const FolderGridLayout = ({
|
||||
indeterminate={true}
|
||||
title={t('Select all files')}
|
||||
/>
|
||||
<button
|
||||
title={t('Copy selected files permalink')}
|
||||
className="cursor-pointer rounded p-1.5 hover:bg-gray-300 disabled:cursor-not-allowed disabled:text-gray-400 disabled:hover:bg-white dark:hover:bg-gray-600 disabled:dark:text-gray-600 disabled:hover:dark:bg-gray-900"
|
||||
disabled={totalSelected === 0}
|
||||
onClick={() => {
|
||||
clipboard.copy(handleSelectedPermalink(getBaseUrl()))
|
||||
toast.success(t('Copied selected files permalink.'))
|
||||
}}
|
||||
>
|
||||
<FontAwesomeIcon icon={['far', 'copy']} size="lg" />
|
||||
</button>
|
||||
{totalGenerating ? (
|
||||
<Downloading title={t('Downloading selected files, refresh page to cancel')} style="p-1.5" />
|
||||
) : (
|
||||
|
||||
@@ -41,6 +41,7 @@ const FolderListLayout = ({
|
||||
totalGenerating,
|
||||
handleSelectedDownload,
|
||||
folderGenerating,
|
||||
handleSelectedPermalink,
|
||||
handleFolderDownload,
|
||||
toast,
|
||||
}) => {
|
||||
@@ -75,6 +76,17 @@ const FolderListLayout = ({
|
||||
indeterminate={true}
|
||||
title={t('Select files')}
|
||||
/>
|
||||
<button
|
||||
title={t('Copy selected files permalink')}
|
||||
className="cursor-pointer rounded p-1.5 hover:bg-gray-300 disabled:cursor-not-allowed disabled:text-gray-400 disabled:hover:bg-white dark:hover:bg-gray-600 disabled:dark:text-gray-600 disabled:hover:dark:bg-gray-900"
|
||||
disabled={totalSelected === 0}
|
||||
onClick={() => {
|
||||
clipboard.copy(handleSelectedPermalink(getBaseUrl()))
|
||||
toast.success(t('Copied selected files permalink.'))
|
||||
}}
|
||||
>
|
||||
<FontAwesomeIcon icon={['far', 'copy']} size="lg" />
|
||||
</button>
|
||||
{totalGenerating ? (
|
||||
<Downloading title={t('Downloading selected files, refresh page to cancel')} style="p-1.5" />
|
||||
) : (
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
"Customise link": "Customise link",
|
||||
"Customised": "Customised",
|
||||
"Customised and encoded": "Customised and encoded",
|
||||
"Copy selected files permalink": "Copy selected files permalink",
|
||||
"Copied selected files permalink.": "Copied selected files permalink.",
|
||||
"Default": "Default",
|
||||
"Do not pretend to be the site owner": "Do not pretend to be the site owner",
|
||||
"Don't worry, after storing them, onedrive-vercel-index will take care of token refreshes and updates after your site goes live.": "Don't worry, after storing them, onedrive-vercel-index will take care of token refreshes and updates after your site goes live.",
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
"Customise link": "自定义直链",
|
||||
"Customised": "自定义链接",
|
||||
"Customised and encoded": "URL 编码的自定义链接",
|
||||
"Copy selected files permalink": "复制选定文件永久链接",
|
||||
"Copied selected files permalink.": "已复制选定文件永久链接。",
|
||||
"Default": "默认",
|
||||
"Do not pretend to be the site owner": "你不是网站所有者",
|
||||
"Don't worry, after storing them, onedrive-vercel-index will take care of token refreshes and updates after your site goes live.": "别担心,存储它们之后,onedrive-vercel-index 会在帮助你定时更新 token",
|
||||
|
||||
Reference in New Issue
Block a user