Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
K
koishi-plugin-picsource-heisi
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
3rdeye
koishi-plugin-picsource-heisi
Commits
8944fb4c
Commit
8944fb4c
authored
Jul 25, 2022
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bump
parent
2dd5cc5e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1637 additions
and
527 deletions
+1637
-527
dev/index.ts
dev/index.ts
+2
-2
package-lock.json
package-lock.json
+1597
-500
package.json
package.json
+9
-8
src/index.ts
src/index.ts
+21
-17
webpack.config.js
webpack.config.js
+8
-0
No files found.
dev/index.ts
View file @
8944fb4c
...
...
@@ -2,8 +2,8 @@ import { App } from 'koishi';
import
TargetPlugin
from
'
../src
'
;
import
ConsolePlugin
from
'
@koishijs/plugin-console
'
;
import
SandboxPlugin
from
'
@koishijs/plugin-sandbox
'
;
import
*
as
DatabasePlugin
from
'
@koishijs/plugin-database-memory
'
;
import
CachePlugin
from
'
@koishijs/plugin-cache-lru
'
;
import
DatabasePlugin
from
'
@koishijs/plugin-database-memory
'
;
import
CachePlugin
from
'
koishi-plugin-cache-aragami
'
;
import
ExtrasInDev
from
'
./extras
'
;
const
app
=
new
App
({
...
...
package-lock.json
View file @
8944fb4c
This source diff could not be displayed because it is too large. You can
view the blob
instead.
package.json
View file @
8944fb4c
...
...
@@ -24,29 +24,30 @@
"nonebot"
,
"heisi"
,
"required:pics"
,
"required:cache"
"required:cache
-aragami
"
],
"bugs"
:
{
"url"
:
"
https://code.mycard.moe/3rdeye/koishi-plugin-picsource-heisi/issues
"
},
"homepage"
:
"
https://code.mycard.moe/3rdeye/koishi-plugin-picsource-heisi
"
,
"peerDependencies"
:
{
"koishi"
:
"^4.7.5"
,
"koishi-plugin-pics"
:
"^9.4.1"
"koishi"
:
"^4.8.2"
,
"koishi-plugin-cache-aragami"
:
"^1.0.4"
,
"koishi-plugin-pics"
:
"^10.0.0"
},
"dependencies"
:
{
"
koishi-thirdeye
"
:
"
^1
0.3.2
"
,
"
koishi-thirdeye
"
:
"
^1
1.0.6
"
,
"
schemastery-gen
"
:
"
^3.1.14
"
},
"devDependencies"
:
{
"
@koishijs/plugin-cache-lru
"
:
"
^1.0.0-rc.0
"
,
"
@koishijs/plugin-console
"
:
"
^3.3.2
"
,
"
@koishijs/plugin-database-memory
"
:
"
^1.3.0
"
,
"
@koishijs/plugin-sandbox
"
:
"
^1.1.3
"
,
"
@koishijs/plugin-console
"
:
"
^4.1.1
"
,
"
@koishijs/plugin-database-memory
"
:
"
^1.4.1
"
,
"
@koishijs/plugin-sandbox
"
:
"
^2.0.1
"
,
"
@types/jest
"
:
"
^27.4.0
"
,
"
@types/node
"
:
"
^16.11.11
"
,
"
@typescript-eslint/eslint-plugin
"
:
"
^4.33.0
"
,
"
@typescript-eslint/parser
"
:
"
^4.33.0
"
,
"
esbuild-loader
"
:
"
^2.19.0
"
,
"
eslint
"
:
"
^7.32.0
"
,
"
eslint-config-prettier
"
:
"
^8.3.0
"
,
"
eslint-plugin-prettier
"
:
"
^3.4.1
"
,
...
...
src/index.ts
View file @
8944fb4c
// import 'source-map-support/register';
import
{
Quester
,
Cache
,
Random
}
from
'
koishi
'
;
import
{
Quester
,
Random
}
from
'
koishi
'
;
import
{
PicSourceHeisiConfig
}
from
'
./config
'
;
import
{
DefinePlugin
,
Inject
}
from
'
koishi-thirdeye
'
;
import
{
PicSourcePlugin
}
from
'
koishi-plugin-pics
'
;
import
AragamiPlugin
,
{
CacheKey
}
from
'
koishi-plugin-cache-aragami
'
;
export
*
from
'
./config
'
;
declare
module
'
koishi
'
{
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace
Cache
{
interface
Tables
{
heisiList
:
string
[];
}
class
HeisiList
{
list
:
string
[];
@
CacheKey
()
identifier
()
{
return
'
heisi
'
;
}
isAvailable
()
{
return
!!
this
.
list
?.
length
;
}
}
...
...
@@ -18,14 +23,13 @@ declare module 'koishi' {
export
default
class
PicSourceHeisi
extends
PicSourcePlugin
(
PicSourceHeisiConfig
,
)
{
@
Inject
(
'
cache
'
,
true
)
private
cache
:
Cache
;
@
Inject
(
true
)
private
aragami
:
AragamiPlugin
;
@
Inject
(
true
)
private
http
:
Quester
;
onApply
()
{
this
.
cache
.
table
(
'
heisiList
'
,
{
maxAge
:
this
.
config
.
ttl
});
this
.
getRandomUrl
().
then
();
}
...
...
@@ -39,27 +43,27 @@ export default class PicSourceHeisi extends PicSourcePlugin(
}
async
getRandomUrl
()
{
let
list
=
await
this
.
cache
.
get
(
'
heisiList
'
,
'
list
'
);
if
(
!
list
||
!
list
.
length
)
{
let
list
=
await
this
.
aragami
.
get
(
HeisiList
,
'
heisi
'
);
if
(
!
list
?.
isAvailable
()
)
{
await
this
.
fetchPicList
();
list
=
await
this
.
cache
.
get
(
'
heisiList
'
,
'
list
'
);
list
=
await
this
.
aragami
.
get
(
HeisiList
,
'
heisi
'
);
}
if
(
!
list
||
!
list
.
length
)
{
if
(
!
list
?.
isAvailable
()
)
{
return
;
}
return
Random
.
pick
(
list
);
return
Random
.
pick
(
list
.
list
);
}
async
fetchPicList
()
{
this
.
logger
.
info
(
`Fetching pic list from
${
this
.
config
.
endpoint
}
...`
);
try
{
const
content
=
await
this
.
http
.
get
(
this
.
config
.
endpoint
);
const
content
=
await
this
.
http
.
get
<
string
>
(
this
.
config
.
endpoint
);
const
urls
=
content
.
trim
()
.
split
(
'
\n
'
)
.
map
((
line
)
=>
line
.
trim
())
.
filter
((
line
)
=>
line
.
startsWith
(
'
http
'
));
await
this
.
cache
.
set
(
'
heisiList
'
,
'
list
'
,
urls
);
await
this
.
aragami
.
set
(
HeisiList
,
{
list
:
urls
}
);
this
.
logger
.
info
(
`fetched
${
urls
.
length
}
pics from
${
this
.
config
.
endpoint
}
`
,
);
...
...
webpack.config.js
View file @
8944fb4c
const
path
=
require
(
'
path
'
);
const
packgeInfo
=
require
(
'
./package.json
'
);
const
{
ESBuildMinifyPlugin
}
=
require
(
'
esbuild-loader
'
);
function
externalsFromDep
()
{
return
Object
.
fromEntries
(
...
...
@@ -43,4 +44,11 @@ module.exports = {
koishi
:
'
koishi
'
,
...(
packAll
?
{}
:
externalsFromDep
()),
},
optimization
:
{
minimizer
:
[
new
ESBuildMinifyPlugin
({
keepNames
:
true
,
}),
],
},
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment