@@ -32,7 +32,7 @@ func setAdmin(ctx context.Context, bot *telego.Bot, message telego.Message) {
32
32
telegram .ReplyMessage (bot , message , "获取管理员信息失败: " + err .Error ())
33
33
return
34
34
}
35
- if userAdmin != nil && ! userAdmin .SuperAdmin {
35
+ if userAdmin == nil || ! userAdmin .SuperAdmin {
36
36
telegram .ReplyMessage (bot , message , "你没有权限设置管理员" )
37
37
return
38
38
}
@@ -124,6 +124,10 @@ func setAdmin(ctx context.Context, bot *telego.Bot, message telego.Message) {
124
124
}
125
125
126
126
func deletePicture (ctx context.Context , bot * telego.Bot , message telego.Message ) {
127
+ if ! CheckPermissionInGroup (ctx , message , types .PermissionDeleteArtwork ) {
128
+ telegram .ReplyMessage (bot , message , "你没有删除图片的权限" )
129
+ return
130
+ }
127
131
var channelMessageID int
128
132
cmd , _ , args := telegoutil .ParseCommand (message .Text )
129
133
if message .ReplyToMessage == nil {
@@ -146,10 +150,6 @@ func deletePicture(ctx context.Context, bot *telego.Bot, message telego.Message)
146
150
channelMessageID = originChannel .MessageID
147
151
}
148
152
if cmd == "del" {
149
- if ! service .CheckAdminPermission (ctx , message .From .ID , types .PermissionDeleteArtwork ) {
150
- telegram .ReplyMessage (bot , message , "你没有删除图片的权限" )
151
- return
152
- }
153
153
picture , err := service .GetPictureByMessageID (ctx , channelMessageID )
154
154
if err != nil {
155
155
telegram .ReplyMessage (bot , message , "获取图片信息失败: " + err .Error ())
@@ -168,10 +168,6 @@ func deletePicture(ctx context.Context, bot *telego.Bot, message telego.Message)
168
168
}
169
169
return
170
170
}
171
- if ! service .CheckAdminPermission (ctx , message .From .ID , types .PermissionDeleteArtwork ) {
172
- telegram .ReplyMessage (bot , message , "你没有删除作品的权限" )
173
- return
174
- }
175
171
artwork , err := service .GetArtworkByMessageID (ctx , channelMessageID )
176
172
if err != nil {
177
173
telegram .ReplyMessage (bot , message , "获取作品信息失败: " + err .Error ())
@@ -200,17 +196,17 @@ func deletePicture(ctx context.Context, bot *telego.Bot, message telego.Message)
200
196
}
201
197
202
198
func fetchArtwork (ctx context.Context , bot * telego.Bot , message telego.Message ) {
203
- if ! service . CheckAdminPermission (ctx , message . From . ID , types .PermissionFetchArtwork ) {
199
+ if CheckPermissionInGroup (ctx , message , types .PermissionFetchArtwork ) {
204
200
telegram .ReplyMessage (bot , message , "你没有拉取作品的权限" )
205
201
return
206
202
}
207
-
208
203
go fetcher .FetchOnce (context .TODO (), config .Cfg .Fetcher .Limit )
209
204
telegram .ReplyMessage (bot , message , "开始拉取作品了" )
210
205
}
211
206
212
207
func postArtwork (ctx context.Context , bot * telego.Bot , query telego.CallbackQuery ) {
213
- if ! service .CheckAdminPermission (ctx , query .From .ID , types .PermissionPostArtwork ) {
208
+ if ! service .CheckAdminPermission (ctx , query .From .ID , types .PermissionPostArtwork ) &&
209
+ ! service .CheckAdminPermission (ctx , query .Message .GetChat ().ID , types .PermissionPostArtwork ) {
214
210
bot .AnswerCallbackQuery (& telego.AnswerCallbackQueryParams {
215
211
CallbackQueryID : query .ID ,
216
212
Text : "你没有发布作品的权限" ,
@@ -287,7 +283,7 @@ func postArtwork(ctx context.Context, bot *telego.Bot, query telego.CallbackQuer
287
283
if asR18 {
288
284
artwork .R18 = true
289
285
}
290
- if err := fetcher .PostAndCreateArtwork (ctx , artwork , bot , storage .GetStorage (), query .From .ID ); err != nil {
286
+ if err := fetcher .PostAndCreateArtwork (ctx , artwork , bot , storage .GetStorage (), query .Message . GetChat () .ID ); err != nil {
291
287
Logger .Errorf ("发布失败: %s" , err )
292
288
bot .EditMessageCaption (& telego.EditMessageCaptionParams {
293
289
ChatID : telegoutil .ID (query .Message .GetChat ().ID ),
@@ -335,11 +331,10 @@ func processPictures(ctx context.Context, bot *telego.Bot, message telego.Messag
335
331
}
336
332
337
333
func setArtworkR18 (ctx context.Context , bot * telego.Bot , message telego.Message ) {
338
- if ! service . CheckAdminPermission (ctx , message . From . ID , types .PermissionEditArtwork ) {
334
+ if ! CheckPermissionInGroup (ctx , message , types .PermissionEditArtwork ) {
339
335
telegram .ReplyMessage (bot , message , "你没有编辑作品的权限" )
340
336
return
341
337
}
342
-
343
338
messageOrigin , ok := telegram .GetMessageOriginChannelArtworkPost (ctx , bot , message )
344
339
if ! ok {
345
340
telegram .ReplyMessage (bot , message , "请回复一条频道的图片消息" )
@@ -360,11 +355,10 @@ func setArtworkR18(ctx context.Context, bot *telego.Bot, message telego.Message)
360
355
}
361
356
362
357
func setArtworkTags (ctx context.Context , bot * telego.Bot , message telego.Message ) {
363
- if ! service . CheckAdminPermission (ctx , message . From . ID , types .PermissionEditArtwork ) {
358
+ if ! CheckPermissionInGroup (ctx , message , types .PermissionEditArtwork ) {
364
359
telegram .ReplyMessage (bot , message , "你没有编辑作品的权限" )
365
360
return
366
361
}
367
-
368
362
messageOrigin , ok := telegram .GetMessageOriginChannelArtworkPost (ctx , bot , message )
369
363
if ! ok {
370
364
telegram .ReplyMessage (bot , message , "请回复一条频道的图片消息" )
@@ -421,7 +415,7 @@ func setArtworkTags(ctx context.Context, bot *telego.Bot, message telego.Message
421
415
}
422
416
423
417
func batchPostArtwork (ctx context.Context , bot * telego.Bot , message telego.Message ) {
424
- if ! service . CheckAdminPermission (ctx , message . From . ID , types .PermissionPostArtwork ) {
418
+ if ! CheckPermissionInGroup (ctx , message , types .PermissionPostArtwork ) {
425
419
telegram .ReplyMessage (bot , message , "你没有发布作品的权限" )
426
420
return
427
421
}
0 commit comments