Skip to content
This repository was archived by the owner on May 28, 2022. It is now read-only.

Commit e68b287

Browse files
committed
Merge branch 'release/v3.3.0'
2 parents 3a11b95 + 03939f4 commit e68b287

File tree

6 files changed

+98
-75
lines changed

6 files changed

+98
-75
lines changed

CHANGELOG.md

Lines changed: 71 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
77

88
## [Unreleased]
99

10+
## [v3.3.0] 2022-01-25
11+
12+
### Added
13+
14+
- `get_files` メソッドを追加しました。
15+
- **It will be changed to a generator in the next update.**
16+
1017
## [v3.2.1] 2022-01-24
1118

1219
### Fixed
@@ -21,18 +28,18 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
2128

2229
### Fixed
2330

24-
- 以下のNoteクラスのメソッドでnote_idが必須になっていたのを修正
25-
- `add_clips`
26-
- `create_renote`
27-
- `create_quote`
28-
- `get_note`
29-
- `get_replies`
30-
- `get_reaction`
31-
- `delete`
31+
- 以下の Note クラスのメソッドで note_id が必須になっていたのを修正
32+
- `add_clips`
33+
- `create_renote`
34+
- `create_quote`
35+
- `get_note`
36+
- `get_replies`
37+
- `get_reaction`
38+
- `delete`
3239
- 以下の引数が正常な動作になりました
33-
- `noExtractMentions`
34-
- `noExtractHashtags`
35-
- `noExtractEmojis`
40+
- `noExtractMentions`
41+
- `noExtractHashtags`
42+
- `noExtractEmojis`
3643

3744
## [v3.1.0] 2022-01-23
3845

@@ -42,13 +49,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
4249

4350
### Fixed
4451

45-
- propertiesが存在しない場合にエラーが出る
52+
- properties が存在しない場合にエラーが出る
4653

4754
## [v3.0.1] 2022-01-23
4855

4956
### Fixed
5057

51-
- user.pyでInstanceクラスが読み込めてない
58+
- user.py で Instance クラスが読み込めてない
5259

5360
## [v3.0.0] 2022-01-23
5461

@@ -83,28 +90,28 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
8390
- 内部変更: `UserActions``ClientActions` のメソッドを別クラスに分割
8491
- Allow only property-based access to most data classes.
8592
- **BREAKING CHANGE**: `User` クラスのプロパティーを以下のように変更
86-
- `name` -> `nickname`
87-
- `username` -> `name`
93+
- `name` -> `nickname`
94+
- `username` -> `name`
8895
- **BREAKING CHANGE**: `User` クラスの `follow` `unfollow` メソッドを削除
89-
- 今後は `User` クラスの `action` メソッドから `add` `remove` メソッドを使用できます
96+
- 今後は `User` クラスの `action` メソッドから `add` `remove` メソッドを使用できます
9097
- **BREAKING CHANGE**: モデル名の変更 `Following` -> `Follower`
9198
- **BREAKING CHANGE**: モデル名の変更 `Follower` -> `Followee`
9299
- **BREAKING CHANGE**: モデルの\_state 属性を\_\_state に変更
93100
- **BREAKING CHANGE**: `Following` クラスのメソッドを以下のとおりに変更
94-
- `accept_request` -> `accept`
95-
- `reject_request` -> `reject`
96-
- `follow` -> `add`
97-
- `remove_follow` -> `remove`
101+
- `accept_request` -> `accept`
102+
- `reject_request` -> `reject`
103+
- `follow` -> `add`
104+
- `remove_follow` -> `remove`
98105

99106
## Removed
100107

101108
- Unused class UserDetails
102-
- from now on use `RawUserDetails`
109+
- from now on use `RawUserDetails`
103110
- Unused file view.py
104111
- **BREAKING CHANGE**: removed `post_note` method
105-
- from now on use `self.client.note.send`
112+
- from now on use `self.client.note.send`
106113
- **BREAKING CHANGE**: removed `note_delete` method
107-
- from now on use `self.client.note.delete`
114+
- from now on use `self.client.note.delete`
108115

109116
## [v2.1.0-alpha] 2021-12-30
110117

@@ -158,13 +165,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
158165
### Changed
159166

160167
- The following classes no longer inherit from `BaseModel`
161-
- Properties
162-
- Folder
163-
- File
164-
- Channel
165-
- PinnedNote
166-
- PinnedPage
167-
- FieldContent
168+
- Properties
169+
- Folder
170+
- File
171+
- Channel
172+
- PinnedNote
173+
- PinnedPage
174+
- FieldContent
168175
- internal change: optimizing import
169176
- internal change: Renamed `PinnedPage` to `PinnedNote`
170177
- **BREAKING CHANGE**: Moved the post_note method of ConnectionState to NoteActions
@@ -202,8 +209,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
202209
- add `favorite`, `add_to_clips`, `add_reaction` and `remove_favorite` method to `Note` class
203210
- add `favorite`, `add_note_to_clips`, `add_reaction_to_note` and `remove_favorite` method to `NoteAction` class
204211
- add class
205-
- NoteActions
206-
- ClientActions
212+
- NoteActions
213+
- ClientActions
207214

208215
### Fixed
209216

@@ -215,21 +222,21 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
215222

216223
- `Note` クラスに `reply` メソッドを追加しました
217224
- 以下のクラスを追加
218-
- MisskeyWebSocket
219-
- MisskeyClientWebSocketResponse
220-
- Route
221-
- HTTPClient
225+
- MisskeyWebSocket
226+
- MisskeyClientWebSocketResponse
227+
- Route
228+
- HTTPClient
222229
- Client に以下のメソッドを追加
223-
- post_chat
224-
- delete_chat
225-
- post_note
226-
- 今後のノート投稿はこちらを使用してください
227-
- delete_note
228-
- get_instance
229-
- fetch_instance
230-
- get_user
231-
- fetch_user
232-
- upload_file
230+
- post_chat
231+
- delete_chat
232+
- post_note
233+
- 今後のノート投稿はこちらを使用してください
234+
- delete_note
235+
- get_instance
236+
- fetch_instance
237+
- get_user
238+
- fetch_user
239+
- upload_file
233240
- `rich` を使ったデバッグ機能を追加しました
234241
- `file_upload` 関数を追加しました
235242
- `run` メソッドに `debug` 引数を追加しました
@@ -246,11 +253,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
246253

247254
- api 周りでのエラー出力が分かりやすくなりました
248255
- ~~今までの `Note` クラスに当たるものを `NoteContent` に変更し別途 `Note` クラスを作成させるようにしました~~
249-
- ~~これは不要なデータなどを生成しないようにすることが目的です。~~
256+
- ~~これは不要なデータなどを生成しないようにすることが目的です。~~
250257
- 部分的に Pydantic を廃止
251-
- 素直に使わないほうが部分的に楽だから
258+
- 素直に使わないほうが部分的に楽だから
252259
- `Drive` クラスの `upload` メソッドで例外 `InvalidParameters` を発生させるようにしました
253-
- これは`to_file`, `to_url` の両方がないと変数が定義されず、`Drive`クラスの生成に失敗する可能性があるからです。
260+
- これは`to_file`, `to_url` の両方がないと変数が定義されず、`Drive`クラスの生成に失敗する可能性があるからです。
254261
- `get_user` メソッドが 非同期になりました。
255262
- 内部変更: `utils.py` の一部を Cython を用いたものに変更
256263
- 内部変更: `DriveAction` を廃止し, `file_upload` を使用するように
@@ -268,8 +275,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
268275
- **破壊的変更**: `Reaction` クラスと `ReactionContent` を結合させました
269276
- **破壊的変更**: `Chat` クラスと `ChatContent` を結合させました
270277
- **破壊的変更**: `Drive` クラスの `upload` メソッドで使用できる引数名を変更、キーワード引数を強制するようにしました。
271-
- 引数名の変更は次の通りです `url` => `to_url`, `path` => `to_file`
272-
- 強制されるキーワード引数は次の通りです `force`, `is_sensitive`
278+
- 引数名の変更は次の通りです `url` => `to_url`, `path` => `to_file`
279+
- 強制されるキーワード引数は次の通りです `force`, `is_sensitive`
273280

274281
### Fixed
275282

@@ -280,21 +287,21 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
280287
### Removed
281288

282289
- `Router` クラスから以下のメソッドを削除しました
283-
- main_channel
284-
- home_time_line
285-
- local_time_line
286-
- global_time_line
290+
- main_channel
291+
- home_time_line
292+
- local_time_line
293+
- global_time_line
287294
- クラスの削除について
288-
- `ChatContent`
289-
- `ReactionContent`
290-
- `NoteContent`
291-
- `UserActions`
292-
- `UserProfile`
293-
- `UserProfile`にあったものは `User` に統合され、詳細な情報は `User` クラスの details オブジェクト(`UserDetails`) から取得可能です
295+
- `ChatContent`
296+
- `ReactionContent`
297+
- `NoteContent`
298+
- `UserActions`
299+
- `UserProfile`
300+
- `UserProfile`にあったものは `User` に統合され、詳細な情報は `User` クラスの details オブジェクト(`UserDetails`) から取得可能です
294301
- **破壊的変更**: `WebSocket` クラスを削除しました
295-
- 今後は aiohttp の `ws_connect` メソッドを使用します
302+
- 今後は aiohttp の `ws_connect` メソッドを使用します
296303
- **破壊的変更**: `requests` ライブラリを削除しました
297-
- 今後は aiohttp の `request` メソッドを使用します
304+
- 今後は aiohttp の `request` メソッドを使用します
298305

299306
## [v0.2.5] 2021-10-07
300307

@@ -314,7 +321,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
314321
### Changed
315322

316323
- **破壊的変更**: `commandFrameWork` を使用しない場合の bot モジュールの名前を client に変更しました
317-
- 主にこれは Discord.py に近づけるためと `commandFrameWork` の bot モジュールとの差別化を目的としています
324+
- 主にこれは Discord.py に近づけるためと `commandFrameWork` の bot モジュールとの差別化を目的としています
318325
- `on_mention` イベントの `.text` に自分自身のメンションを含まないように、必要な場合は `content` をご利用ください
319326
- デフォルトで接続するチャンネルを `globalTimeline` から `main` に変更しました。グローバルタイムラインを見る場合は `Router` をご利用ください
320327
- `add_poll` の引数位置が変更されています。ご注意ください
@@ -456,13 +463,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
456463
- Added Each event method.
457464

458465
[v0.2.5]: https://github.com/yupix/mi.py/compare/v0.1.0-5...v0.2.5
459-
460466
[v0.1.5]: https://github.com/yupix/mi.py/compare/v0.1.0-1a...v0.1.0-5
461-
462467
[v0.1.0-1a]: https://github.com/yupix/mi.py/compare/v0.1.0a...v0.1.0-1a
463-
464468
[v0.1.0a]: https://github.com/yupix/mi.py/compare/v0.0.1a...v0.1.0a
465-
466469
[v0.0.1a]: https://github.com/yupix/Mi.py/releases
467-
468470
[unreleased]: https://github.com/yupix/mi.py/compare/master...HEAD

README-ja.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Mi.py は[Discord.py](https://github.com/Rapptz/discord.py)
2323

2424
## 注意点
2525

26-
1. グローバルタイムラインに接続したりする際に使う以下の様なコードがあるとホームタイムラインとグローバルタイムラインの 2 つを受信したことになり on_message が 2 回動作します。
26+
1. グローバルタイムラインに接続したりする際に使う以下の様なコードがあるとホームタイムラインとグローバルタイムラインの 2 つを受信したことになり on_message が 2 回動作します。
2727
これは接続するチャンネルを増やすごとに増えていく形になります
2828

2929
```python
@@ -72,6 +72,11 @@ await Router(ws).connect_channel(['home', 'global'])
7272

7373
最後にこのプロジェクトを作るきっかけになり、一部のコードを使用させていただいている Discord.py が Archived になりました。 作者である Danny さんや全てのコラボレーターに最大限の感謝申し上げます。
7474

75+
## Mi.pyを使って作成されたプロジェクト
76+
77+
- [Misskey Ebooks Bot](https://github.com/fotoente/MIsskey-ebooks-bot)
78+
- [Misskey Bot CeilingFox](https://github.com/fotoente/MIsskey-ebooks-bot)
79+
7580
# LICENSE
7681

7782
[Mi.py](https://github.com/yupix/Mi.py/blob/master/LICENSE.md)

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ see [Documentation](https://yupix.github.io/Mi.py/en/).
2626
## warning
2727

2828
1. If you connect to the home timeline while connected to the global timeline, the `on_message` event will work twice for one
29-
message, because the same message is received on two channels. This is not a bug, but normal behavior.
29+
message, because the same message is received on two channels. This is not a bug, but normal behavior.
3030

3131
```python
3232
await Router(ws).connect_channel(['home', 'global'])
@@ -76,6 +76,11 @@ These are the people who contributed to the development
7676
Finally, Discord.py, which inspired me to create this project and for which I use some of the code, is now Archived. Many
7777
thanks to Danny and all the collaborators.
7878

79+
### Projects that use Mi.py
80+
81+
- [Misskey Ebooks Bot](https://github.com/fotoente/MIsskey-ebooks-bot)
82+
- [Misskey Bot CeilingFox](https://github.com/fotoente/MIsskey-ebooks-bot)
83+
7984
# LICENSE
8085

8186
[Mi.py](https://github.com/yupix/Mi.py/blob/master/LICENSE.md)

mi/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
__copyright__ = "Copyright 2021-present yupix"
55
__author_email__ = "[email protected]"
66
__url__ = "https://github.com/yupix/Mi.py"
7-
__version__ = "3.2.1"
7+
__version__ = "3.3.0"
88

99
__path__ = __import__("pkgutil").extend_path(__path__, __name__)
1010

mi/api/drive.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from __future__ import annotations
22

33
import asyncio
4-
from typing import Optional, TYPE_CHECKING
4+
from typing import List, Optional, TYPE_CHECKING
55

66
from mi.drive import File, Folder
7+
from mi.exception import InvalidParameters
78
from mi.http import HTTPClient, Route
89
from mi.models.drive import RawFile, RawFolder
910
from mi.utils import remove_dict_empty
@@ -63,6 +64,16 @@ async def delete(self, folder_id: Optional[str] = None) -> bool:
6364
data = {'folderId': folder_id}
6465
return bool(await self.__http.request(Route('POST', '/api/drive/folders/delete'), json=data, lower=True, auth=True))
6566

67+
async def get_files(self, limit: int = 10, since_id: Optional[str] = None, until_id: Optional[str] = None, folder_id: Optional[str] = None, file_type: Optional[str] = None) -> List[File]:
68+
69+
if limit >= 100:
70+
raise InvalidParameters('limit must be less than 100')
71+
72+
folder_id = folder_id or self.__folder_id
73+
data = {'limit': limit, 'sinceId': since_id, 'untilId': until_id, 'folderId': folder_id, 'Type': file_type}
74+
res = await self.__http.request(Route('POST', '/api/drive/files'), json=data, auth=True, lower=True)
75+
return [File(RawFile(i), state=self.__state) for i in res]
76+
6677

6778
class DriveManager:
6879
def __init__(self, __state: 'ConnectionState', http: HTTPClient, loop: asyncio.AbstractEventLoop):
@@ -71,7 +82,7 @@ def __init__(self, __state: 'ConnectionState', http: HTTPClient, loop: asyncio.A
7182
self.__loop = loop
7283

7384
async def get_folders(self, limit: int = 100, since_id: Optional[str] = None, until_id: Optional[str] = None,
74-
folder_id: Optional[str] = None):
85+
folder_id: Optional[str] = None) -> List[Folder]:
7586
data = {
7687
'limit': limit,
7788
'sinceId': since_id,

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
setup(
4040
name="mi.py",
41-
version="3.2.1",
41+
version="3.3.0",
4242
install_requires=["emoji", 'aiocache', 'aiohttp'],
4343
url="https://github.com/yupix/mi.py",
4444
author="yupix",

0 commit comments

Comments
 (0)