Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
T
tx3-bang-reader
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
nanahira
tx3-bang-reader
Commits
3051cd47
Commit
3051cd47
authored
Jul 01, 2020
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change fetch way
parent
91697a5a
Pipeline
#208
passed with stages
in 1 minute and 24 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
14 deletions
+10
-14
src/fetcher.ts
src/fetcher.ts
+10
-14
No files found.
src/fetcher.ts
View file @
3051cd47
...
...
@@ -45,7 +45,7 @@ export class Tx3Fetcher {
async
initProxies
()
{
await
this
.
proxyFetcher
.
initProxies
();
}
async
fetch
():
Promise
<
Map
<
string
,
User
[]
>>
{
async
fetch
All
():
Promise
<
Map
<
string
,
User
[]
>>
{
const
res
=
new
Map
<
string
,
User
[]
>
();
const
userLists
=
await
Promise
.
all
(
servers
.
map
(
server
=>
this
.
fetchUsersFromServer
(
server
)));
for
(
let
i
=
1
;
i
<
userLists
.
length
;
++
i
){
...
...
@@ -54,33 +54,28 @@ export class Tx3Fetcher {
return
res
;
}
async
fetchUsersFromServer
(
server
:
string
):
Promise
<
User
[]
>
{
const
userList
=
await
this
.
fetchListFromServer
(
server
);
return
await
Promise
.
all
(
userList
.
map
(
r
=>
this
.
fetchUser
(
r
)));
}
async
fetchListFromServer
(
server
:
string
):
Promise
<
PlayerRow
[]
>
{
console
.
log
(
`Fetching user list from server
${
server
}
.`
);
const
resPromises
:
Promise
<
PlayerRow
[]
>
[]
=
[];
const
resPromises
:
Promise
<
User
[]
>
[]
=
[];
for
(
let
school
=
1
;
school
<
12
;
++
school
)
{
resPromises
.
push
(
this
.
fetch
List
FromSchoolAndServer
(
school
,
server
));
resPromises
.
push
(
this
.
fetch
Users
FromSchoolAndServer
(
school
,
server
));
}
const
result
=
_
.
flatten
(
await
Promise
.
all
(
resPromises
));
console
.
log
(
`Fetched user list with
${
result
.
length
}
users from server
${
server
}
.`
);
return
result
;
}
async
fetch
ListFromSchoolAndServer
(
school
:
number
,
server
:
string
):
Promise
<
PlayerRow
[]
>
{
console
.
log
(
`Fetching user
list
from server
${
server
}
with school
${
school
}
.`
);
const
res
:
PlayerRow
[][]
=
[];
async
fetch
UsersFromSchoolAndServer
(
school
:
number
,
server
:
string
):
Promise
<
User
[]
>
{
console
.
log
(
`Fetching user
s
from server
${
server
}
with school
${
school
}
.`
);
const
res
:
User
[][]
=
[];
for
(
let
page
=
1
;
page
<=
25
;
++
page
)
{
const
list
=
await
this
.
fetchUser
List
(
school
,
server
,
page
);
const
list
=
await
this
.
fetchUser
s
(
school
,
server
,
page
);
if
(
!
list
.
length
)
{
console
.
log
(
`User list from server
${
server
}
with school
${
school
}
page
${
page
}
is blank.`
);
break
;
}
res
.
push
(
list
);
}
return
_
.
flatten
(
res
);
}
async
fetchUser
List
(
school
:
number
,
server
:
string
,
page
:
number
):
Promise
<
PlayerRow
[]
>
{
async
fetchUser
s
(
school
:
number
,
server
:
string
,
page
:
number
):
Promise
<
User
[]
>
{
console
.
log
(
`Fetching user list from server
${
server
}
with school
${
school
}
page
${
page
}
.`
);
try
{
const
content
:
string
=
await
this
.
proxyFetcher
.
getWithProxy
(
`http://bang.tx3.163.com/bang/ranks`
,
{
...
...
@@ -96,7 +91,8 @@ export class Tx3Fetcher {
return
qs
.
stringify
(
params
);
}
});
return
parsePlayerRows
(
content
);
const
playerRows
=
parsePlayerRows
(
content
);
return
await
Promise
.
all
(
playerRows
.
map
(
row
=>
this
.
fetchUser
(
row
)));
}
catch
(
e
)
{
console
.
error
(
`Errored fetching user list with params
${
school
}
${
server
}
${
page
}
}:
${
e
.
toString
()}
`
);
return
[];
...
...
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