Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
altlinux-packages-bot
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kirill Unitsaev
altlinux-packages-bot
Commits
56ef68f1
Verified
Commit
56ef68f1
authored
Jul 23, 2025
by
Kirill Unitsaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
altrepo.parser.news: add date check for p11 and add p10
parent
8adda819
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
34 additions
and
13 deletions
+34
-13
methods.py
src/altrepo/parser/methods.py
+7
-0
models.py
src/altrepo/parser/models.py
+1
-0
urls.py
src/altrepo/parser/news/urls.py
+20
-12
news.py
src/data/keyboards/news.py
+3
-0
news.py
src/handlers/news.py
+3
-1
No files found.
src/altrepo/parser/methods.py
View file @
56ef68f1
...
...
@@ -45,6 +45,13 @@ class NewsInfo:
return
None
html
=
await
self
.
client
.
get
(
url
,
"koi8-r"
)
return
await
packages_parser
(
html
,
url
)
async
def
p10
(
self
)
->
models
.
PackagesModel
|
None
:
url
=
(
await
self
.
news_urls
())
.
p10
if
not
url
:
return
None
html
=
await
self
.
client
.
get
(
url
,
"koi8-r"
)
return
await
packages_parser
(
html
,
url
)
class
PackagesInfo
:
...
...
src/altrepo/parser/models.py
View file @
56ef68f1
...
...
@@ -5,6 +5,7 @@ from typing import List
class
NewsURL
(
BaseModel
):
sisyphus
:
str
|
None
=
None
p11
:
str
|
None
=
None
p10
:
str
|
None
=
None
bugs
:
str
|
None
=
None
...
...
src/altrepo/parser/news/urls.py
View file @
56ef68f1
from
bs4
import
BeautifulSoup
from
datetime
import
datetime
import
re
from
..
import
models
...
...
@@ -17,7 +16,6 @@ async def urls_parser(client):
html
=
await
client
.
get
(
f
"{base_url}date.html"
,
"koi8-r"
)
soup
=
BeautifulSoup
(
html
,
"html.parser"
)
sisyphus_id
=
0
result
=
{
"sisyphus"
:
None
,
"bugs"
:
None
,
"p11"
:
None
}
for
li
in
soup
.
find_all
(
"li"
):
...
...
@@ -28,22 +26,32 @@ async def urls_parser(client):
href
=
a
[
"href"
]
text
=
a
.
get_text
(
strip
=
True
)
match
=
re
.
search
(
r"(\d+)\.html"
,
href
)
if
not
match
:
continue
msg_id
=
int
(
match
.
group
(
1
))
url
=
base_url
+
href
if
f
"Sisyphus-{today} packages"
in
text
:
result
[
"sisyphus"
]
=
url
sisyphus_id
=
msg_id
elif
f
"Sisyphus-{today} bugs"
in
text
:
result
[
"bugs"
]
=
url
elif
"p11/branch packages"
in
text
and
sisyphus_id
:
if
msg_id
>
sisyphus_id
:
elif
"p11/branch packages"
in
text
and
await
_check_date
(
url
,
client
):
result
[
"p11"
]
=
url
if
result
[
"sisyphus"
]
is
None
:
result
[
"p11"
]
=
None
elif
"p10/branch packages"
in
text
and
await
_check_date
(
url
,
client
):
result
[
"p10"
]
=
url
return
models
.
NewsURL
(
**
result
)
async
def
_check_date
(
url
,
client
):
html
=
await
client
.
get
(
url
,
"koi8-r"
)
soup
=
BeautifulSoup
(
html
,
"html.parser"
)
tag
=
soup
.
find
(
"i"
)
if
not
tag
:
return
False
parts
=
tag
.
text
.
strip
()
.
split
()
if
len
(
parts
)
<
3
:
return
False
try
:
return
int
(
parts
[
2
])
==
datetime
.
now
()
.
day
except
ValueError
:
return
False
src/data/keyboards/news.py
View file @
56ef68f1
...
...
@@ -8,6 +8,9 @@ news_type_kb = (
.
add
(
InlineButton
(
"p11"
,
callback_data
=
"news/p11/0"
))
.
add
(
InlineButton
(
"p11 (ru)"
,
callback_data
=
"news/p11/1"
))
.
row
()
.
add
(
InlineButton
(
"p10"
,
callback_data
=
"news/p10/0"
))
.
add
(
InlineButton
(
"p10 (ru)"
,
callback_data
=
"news/p10/1"
))
.
row
()
.
add
(
InlineButton
(
"Bugs"
,
callback_data
=
"news/bugs/0"
))
.
add
(
InlineButton
(
"FTBFS"
,
callback_data
=
"news/ftbfs/0"
))
.
row
()
...
...
src/handlers/news.py
View file @
56ef68f1
...
...
@@ -28,7 +28,7 @@ async def news_handler(
text
=
(
"Выберите тип новостей.
\n\n
"
"Внимание: Sisyphus (ru)
и p11
(ru) могут работать нестабильно."
"Внимание: Sisyphus (ru)
, p11 (ru) и p10
(ru) могут работать нестабильно."
)
await
m
.
ctx_api
.
send_message
(
chat_id
=
m
.
from_user
.
id
,
text
=
text
,
reply_markup
=
news_keyboards
.
news_type_kb
...
...
@@ -60,6 +60,8 @@ async def news_handler(
packages_data
=
await
altrepo
.
parser
.
news
.
sisyphus
()
elif
news_type
==
"p11"
:
packages_data
=
await
altrepo
.
parser
.
news
.
p11
()
elif
news_type
==
"p10"
:
packages_data
=
await
altrepo
.
parser
.
news
.
p10
()
else
:
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