1
1
const axios = require ( "axios" )
2
2
var MarkdownIt = require ( 'markdown-it' ) ;
3
3
var md = new MarkdownIt ( ) ;
4
-
4
+ const fse = require ( 'fs-extra' ) ;
5
+ const logger = require ( "../plugins/logger" )
5
6
module . exports = async ( ) => {
6
7
let filter_data = [ ]
7
8
let filter_data_2 = [ ]
8
9
let final_data = [ ]
9
10
10
- const res = await axios . get ( "https://raw.githubusercontent.com/DarrenOfficial/lavalink-list/master/docs/NoSSL/lavalink-without-ssl.md" )
11
- var result = md . parse ( res . data ) ;
12
-
13
- result . filter ( async data => {
14
- if ( data . tag == "code" ) {
15
- filter_data . push ( data . content )
11
+ function getLavalinkServerInfo ( data ) {
12
+ var result = md . parse ( data ) ;
13
+
14
+ result . filter ( async data => {
15
+ if ( data . tag == "code" ) {
16
+ filter_data . push ( data . content )
17
+ }
18
+ } )
19
+
20
+ for ( let i = 0 ; i < filter_data . length ; i ++ ) {
21
+ const element = filter_data [ i ] ;
22
+ // Phrase data
23
+ const res = element . replace ( / \n / g, "" ) ;
24
+ const res2 = res . replace ( / \s + / g, "" )
25
+ const res3 = res2 . replace ( / H o s t / g, "" )
26
+ const res4 = res3 . replace ( / P o r t / g, "" )
27
+ const res5 = res4 . replace ( / P a s s w o r d / g, "" )
28
+ const res6 = res5 . replace ( / S e c u r e / g, "" )
29
+ const res7 = res6 . replace ( / [ & \/ \\ # , + ( ) $ ~ % ' " * ? < > { } ] / g, "" )
30
+ filter_data_2 . push ( res7 )
16
31
}
17
- } )
18
-
19
- for ( let i = 0 ; i < filter_data . length ; i ++ ) {
20
- const element = filter_data [ i ] ;
21
- // Phrase data
22
- const res = element . replace ( / \n / g, "" ) ;
23
- const res2 = res . replace ( / \s + / g, "" )
24
- const res3 = res2 . replace ( / H o s t / g, "" )
25
- const res4 = res3 . replace ( / P o r t / g, "" )
26
- const res5 = res4 . replace ( / P a s s w o r d / g, "" )
27
- const res6 = res5 . replace ( / S e c u r e / g, "" )
28
- const res7 = res6 . replace ( / [ & \/ \\ # , + ( ) $ ~ % ' " * ? < > { } ] / g, "" )
29
- filter_data_2 . push ( res7 )
32
+
33
+ for ( let i = 0 ; i < filter_data_2 . length ; i ++ ) {
34
+ const regex_extract = / : ( .{ 0 , 99999 } ) : ( [ 0 - 9 ] { 0 , 99999 } ) : ( .{ 0 , 99999 } ) : ( f a l s e | t r u e ) /
35
+ const element = filter_data_2 [ i ] ;
36
+ const res = regex_extract . exec ( element )
37
+ final_data . push ( {
38
+ host : res [ 1 ] ,
39
+ port : res [ 2 ] ,
40
+ pass : res [ 3 ] ,
41
+ secure : res [ 4 ] == "false" || res [ 4 ] == "False" ? false : true ,
42
+ online : false
43
+ } )
44
+ }
45
+
46
+ return final_data
30
47
}
31
48
32
- for ( let i = 0 ; i < filter_data_2 . length ; i ++ ) {
33
- const regex_extract = / : ( .{ 0 , 99999 } ) : ( [ 0 - 9 ] { 0 , 99999 } ) : ( .{ 0 , 99999 } ) : ( f a l s e | t r u e ) /
34
- const element = filter_data_2 [ i ] ;
35
- const res = regex_extract . exec ( element )
36
- final_data . push ( {
37
- host : res [ 1 ] ,
38
- port : res [ 2 ] ,
39
- pass : res [ 3 ] ,
40
- secure : res [ 4 ] == "false" || res [ 4 ] == "False" ? false : true ,
41
- online : false
42
- } )
43
- }
49
+ if ( ! fse . existsSync ( "./.cylane" ) ) {
50
+ const res = await axios . get ( "https://raw.githubusercontent.com/DarrenOfficial/lavalink-list/master/docs/NoSSL/lavalink-without-ssl.md" )
44
51
45
- return final_data
52
+ fse . outputFile ( '.cylane/lavalink_no_ssl.md' , res . data )
53
+ . then ( ( ) => {
54
+ logger . info ( 'New cache has been created!' ) ;
55
+ } )
56
+ . catch ( err => {
57
+ logger . error ( err )
58
+ } ) ;
59
+
60
+ return getLavalinkServerInfo ( res . data )
61
+
62
+ } else if ( fse . existsSync ( "./.cylane" ) ) {
63
+ logger . info ( 'Cache found. Now using for speed up' ) ;
64
+ const data = await fse . readFile ( './.cylane/lavalink_no_ssl.md' , { encoding : 'utf8' } ) ;
65
+ return getLavalinkServerInfo ( data )
66
+ }
46
67
}
0 commit comments