|
6 | 6 | from slack import methods
|
7 | 7 | from slack.events import Message, Event
|
8 | 8 |
|
9 |
| -from pyslackersweb.sirbot import settings |
10 |
| -from pyslackersweb.tasks import SLACK_ADMIN_CACHE_KEY |
| 9 | +from pyslackersweb.sirbot import settings, database |
11 | 10 | from pyslackersweb.util.log import ContextAwareLoggerAdapter
|
12 | 11 |
|
13 | 12 | logger = ContextAwareLoggerAdapter(logging.getLogger(__name__))
|
@@ -35,53 +34,52 @@ async def team_join(request: web.Request, event: Event) -> None:
|
35 | 34 |
|
36 | 35 |
|
37 | 36 | async def pin_added(request: web.Request, event: Event) -> None:
|
| 37 | + async with request.app["pg"].acquire() as conn: |
| 38 | + if database.is_admin(conn, event["user"]): |
| 39 | + return |
38 | 40 |
|
39 |
| - if event["user"] not in ( |
40 |
| - await request.app["redis"].get(SLACK_ADMIN_CACHE_KEY, encoding="utf-8") |
41 |
| - ): |
42 |
| - |
43 |
| - message = Message() |
44 |
| - message["channel"] = settings.SLACK_ADMIN_CHANNEL |
45 |
| - message["attachments"] = [ |
46 |
| - { |
47 |
| - "fallback": "Pin added notice", |
48 |
| - "title": f'Pin added in channel <#{event["channel_id"]}> by <@{event["user"]}>', |
49 |
| - "callback_id": "pin_added", |
50 |
| - } |
51 |
| - ] |
| 41 | + message = Message() |
| 42 | + message["channel"] = settings.SLACK_ADMIN_CHANNEL |
| 43 | + message["attachments"] = [ |
| 44 | + { |
| 45 | + "fallback": "Pin added notice", |
| 46 | + "title": f'Pin added in channel <#{event["channel_id"]}> by <@{event["user"]}>', |
| 47 | + "callback_id": "pin_added", |
| 48 | + } |
| 49 | + ] |
52 | 50 |
|
53 |
| - if event["item"]["type"] == "message": |
54 |
| - message["attachments"][0]["text"] = event["item"]["message"]["text"] |
55 |
| - item_id = event["item"]["message"]["ts"] |
56 |
| - elif event["item"]["type"] == "file": |
57 |
| - file = await request.app["slack_client"].query( |
58 |
| - url=methods.FILES_INFO, data={"file": event["item"]["file_id"]} |
59 |
| - ) |
60 |
| - message["attachments"][0]["text"] = f'File: {file["file"]["title"]}' |
61 |
| - item_id = event["item"]["file_id"] |
62 |
| - elif event["item"]["type"] == "file_comment": |
63 |
| - message["attachments"][0]["text"] = event["item"]["comment"]["comment"] |
64 |
| - item_id = event["item"]["comment"]["id"] |
65 |
| - else: |
66 |
| - message["attachments"][0]["text"] = "Unknown pin type" |
67 |
| - await request.app["slack_client"].api.query(url=methods.CHAT_POST_MESSAGE, data=message) |
68 |
| - return |
| 51 | + if event["item"]["type"] == "message": |
| 52 | + message["attachments"][0]["text"] = event["item"]["message"]["text"] |
| 53 | + item_id = event["item"]["message"]["ts"] |
| 54 | + elif event["item"]["type"] == "file": |
| 55 | + file = await request.app["slack_client"].query( |
| 56 | + url=methods.FILES_INFO, data={"file": event["item"]["file_id"]} |
| 57 | + ) |
| 58 | + message["attachments"][0]["text"] = f'File: {file["file"]["title"]}' |
| 59 | + item_id = event["item"]["file_id"] |
| 60 | + elif event["item"]["type"] == "file_comment": |
| 61 | + message["attachments"][0]["text"] = event["item"]["comment"]["comment"] |
| 62 | + item_id = event["item"]["comment"]["id"] |
| 63 | + else: |
| 64 | + message["attachments"][0]["text"] = "Unknown pin type" |
| 65 | + await request.app["slack_client"].api.query(url=methods.CHAT_POST_MESSAGE, data=message) |
| 66 | + return |
69 | 67 |
|
70 |
| - message["attachments"][0]["actions"] = [ |
71 |
| - {"name": "validate", "text": "Validate", "style": "primary", "type": "button",}, |
72 |
| - { |
73 |
| - "name": "revert", |
74 |
| - "text": "Revert", |
75 |
| - "style": "danger", |
76 |
| - "value": json.dumps( |
77 |
| - { |
78 |
| - "channel": event["channel_id"], |
79 |
| - "item_type": event["item"]["type"], |
80 |
| - "item_id": item_id, |
81 |
| - } |
82 |
| - ), |
83 |
| - "type": "button", |
84 |
| - }, |
85 |
| - ] |
| 68 | + message["attachments"][0]["actions"] = [ |
| 69 | + {"name": "validate", "text": "Validate", "style": "primary", "type": "button",}, |
| 70 | + { |
| 71 | + "name": "revert", |
| 72 | + "text": "Revert", |
| 73 | + "style": "danger", |
| 74 | + "value": json.dumps( |
| 75 | + { |
| 76 | + "channel": event["channel_id"], |
| 77 | + "item_type": event["item"]["type"], |
| 78 | + "item_id": item_id, |
| 79 | + } |
| 80 | + ), |
| 81 | + "type": "button", |
| 82 | + }, |
| 83 | + ] |
86 | 84 |
|
87 |
| - await request.app["slack_client"].query(url=methods.CHAT_POST_MESSAGE, data=message) |
| 85 | + await request.app["slack_client"].query(url=methods.CHAT_POST_MESSAGE, data=message) |
0 commit comments