Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
twitter_syncer
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Odysseus
twitter_syncer
Commits
8d20dd37
Commit
8d20dd37
authored
Jan 12, 2025
by
vicotor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update idx
parent
eeb28557
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
71 additions
and
37 deletions
+71
-37
idx.go
idx.go
+71
-37
No files found.
idx.go
View file @
8d20dd37
...
...
@@ -2,7 +2,6 @@ package main
import
(
"container/list"
"fmt"
"log/slog"
"time"
...
...
@@ -22,7 +21,7 @@ x 4. 到最后也没匹配上,或者超过了多少页。 外面处理;
type
Idx
struct
{
idx
[]
UserTask
newIdx
[]
UserTask
//
newIdx []UserTask
//taskId string
List
*
list
.
List
}
...
...
@@ -30,21 +29,21 @@ type Idx struct {
func
NewIdx
(
i
[]
UserTask
)
*
Idx
{
return
&
Idx
{
idx
:
i
,
newIdx
:
make
([]
UserTask
,
0
,
10
),
//
newIdx: make([]UserTask, 0, 10),
List
:
list
.
New
(),
}
}
func
(
s
*
Idx
)
Idx
(
page
[]
UserTask
)
(
bool
,
*
list
.
List
)
{
if
len
(
s
.
newIdx
)
==
0
{
for
k
,
v
:=
range
page
{
s
.
newIdx
=
append
(
s
.
newIdx
,
v
)
if
k
>
5
{
break
}
}
}
//
if len(s.newIdx) == 0 {
//
for k, v := range page {
//
s.newIdx = append(s.newIdx, v)
//
if k > 5 {
//
break
//
}
//
}
//
}
if
s
.
idx
!=
nil
&&
len
(
s
.
idx
)
==
0
{
...
...
@@ -54,43 +53,73 @@ func (s *Idx) Idx(page []UserTask) (bool, *list.List) {
newList
.
PushFront
(
v
)
}
s
.
idx
=
s
.
newIdx
s
.
newIdx
=
make
([]
UserTask
,
0
,
10
)
s
.
idx
=
page
return
true
,
newList
}
//TODO 匹配多个元素,防止用户取消;
newItems
:=
list
.
New
()
for
k
,
v
:=
range
page
{
match
:=
false
for
ik
,
iv
:=
range
s
.
idx
{
//slog.Info("match", "idx", iv.UserId, "page user id", v.UserId, "page user name", v.UserName)
if
v
.
UserId
==
iv
.
UserId
{
match
=
true
break
_
,
_
=
k
,
ik
}
}
if
match
{
newList
:=
s
.
List
if
!
match
{
newItems
.
PushFront
(
v
)
}
}
if
newItems
.
Len
()
<
len
(
page
)
{
// 连续, 更新 s.idx, 将新元素加入到 s.List中, 并将s.List 返回.
s
.
idx
=
page
for
e
:=
newItems
.
Front
();
e
!=
nil
;
e
=
e
.
Next
()
{
s
.
List
.
PushFront
(
e
.
Value
)
}
newlist
:=
s
.
List
s
.
List
=
list
.
New
()
//idx
s
.
idx
=
s
.
newIdx
s
.
newIdx
=
make
([]
UserTask
,
0
,
10
)
fmt
.
Println
(
"newList"
,
"new users"
,
newList
.
Len
())
return
true
,
newList
return
true
,
newlist
}
else
{
s
.
List
.
PushFront
(
v
)
}
// 不连续, 不必更新 idx, 将所有新增元素加入到s.List中.
for
e
:=
newItems
.
Front
();
e
!=
nil
;
e
=
e
.
Next
()
{
s
.
List
.
PushFront
(
e
.
Value
)
}
return
false
,
nil
}
////TODO 匹配多个元素,防止用户取消;
//for k, v := range page {
//
// match := false
//
// for ik, iv := range s.idx {
// //slog.Info("match", "idx", iv.UserId, "page user id", v.UserId, "page user name", v.UserName)
// if v.UserId == iv.UserId {
// match = true
// break
// _, _ = k, ik
// }
// }
//
// if match {
//
// newList := s.List
// s.List = list.New()
// //idx
// s.idx = s.newIdx
// s.newIdx = make([]UserTask, 0, 10)
//
// fmt.Println("newList", "new users", newList.Len())
//
// return true, newList
//
// } else {
// s.List.PushFront(v)
// }
//}
//return false, nil
}
type
PageUsers
struct
{
...
...
@@ -117,7 +146,12 @@ func (p *PageUsers) Request(tweetId string, next string, f req) ([]UserTask, err
if
err
!=
nil
{
return
nil
,
err
}
slog
.
Debug
(
"Request"
,
"tweet id"
,
tweetId
,
"next"
,
newNext
,
"len(users)"
,
len
(
users
))
slog
.
Info
(
"Request"
,
"tweet id"
,
tweetId
,
"next"
,
next
,
"newnext"
,
newNext
,
"len(users)"
,
len
(
users
))
//if len(users) > 0 && tweetId == "gokunocool" {
// for _, v := range users {
// fmt.Println("quest user id", v.ID, "user name", v.UserName)
// }
//}
// wait rate limit.
if
rt
!=
nil
&&
rt
.
Remaining
==
0
{
...
...
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