Tải bản đầy đủ (.docx) (25 trang)

Báo Cáo Đa Phương Tiện Đề Tài Auto Join A Meeting.docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (744.65 KB, 25 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN-ĐIỆN TỬ KHOA
ĐIỆN TỬ

BÁO CÁO: ĐA PHƯƠNG TIỆN

ĐỀ TÀI: AUTO JOIN A MEETING
Giảng viên hướng dẫn: TS. PHẠM VĂN TIẾN
Mã lớp: 135074
Nhóm sinh viên thực hiện: Group 3
1.
Nguyễn Vũ Gia Bảo – 20198116
2.
Đỗ Văn Duy – 2019 8122
3.
Trần Đức Hiếu – 20198131
4.
Nguyễn Hoàng Ly – 20198138
5.
Bùi Thị Thanh – 20198149
Hà Nội, 12 - 2022


MỤC LỤC
MỤC LỤC ............................................................................................................................................ 2
DANH MỤC HÌNH ẢNH................................................................................................................... 3
LỜI NĨI ĐẦU..................................................................................................................................... 4
PHẦN I. KHÁI NIỆM LIÊN QUAN................................................................................................. 5
1.

Khái niệm Meeting Online...................................................................................................... 5



2.

Python....................................................................................................................................... 5

3.

Github....................................................................................................................................... 7

PHẦN II. KỸ THUẬT......................................................................................................................... 8
1.

Thư viện PyautoGui [1]............................................................................................................ 8
1.1.

Giới thiệu.......................................................................................................................... 8

1.2.

Cài đặt............................................................................................................................... 8

1.3.

Chức năng........................................................................................................................ 9

1.4. Các thao tác chuột phổ biến............................................................................................ 9
2.

Thư viện webbrowser [2]........................................................................................................ 11


3.

Thư viện datetime [3]............................................................................................................. 13

4.

Thư viện time [4].................................................................................................................... 17

PHẦN III. TRIỂN KHAI ĐỀ TÀI.................................................................................................... 21
1.

Các bước thực hiện [5].......................................................................................................... 21

2.

Kết quả................................................................................................................................... 22

PHẦN IV. KẾT LUẬN...................................................................................................................... 24
TÀI LIỆU THAM KHẢO................................................................................................................. 25

2


DANH MỤC HÌNH ẢNH
Hình 1. Cài dặt PyautoGui trong Windows.............................................................................................7
Hình 2. Cài đặt PyautoGui trong hệ điều hành Mac...............................................................................7
Hình 3. Cài đặt PyautoGui trong Linux..................................................................................................8
Hình 4. Thêm PyautoGui vào chương trình............................................................................................8
Hình 5. Cú pháp hàm click()...................................................................................................................9
Hình 6. Thêm webbrowser và mở webbrowser..................................................................................... 10

Hình 7. Cú pháp của phương thức open()............................................................................................. 10
Hình 8. Mở trang web trong 1 cửa sổ mới............................................................................................. 11
Hình 9. Mở trang web trên 1 tab mới trong trình duyệt........................................................................ 11
Hình 10. Hiển thị đường dẫn url của trang web cần được mở.............................................................. 11
Hình 11. Thêm datetime vào chương trình............................................................................................ 12
Hình 12. Import thư viện....................................................................................................................... 20
Hình 13. Sử dụng các hàm để trợ giúp chuyển đổi định dạng............................................................... 20
Hình 14. Xây dựng kịch bản.................................................................................................................. 21
Hình 15. Kết quả.................................................................................................................................... 22

3


LỜI NĨI ĐẦU
Trong những năm gần đây, khoa học cơng nghệ đang dần tiến đến một
tầm cao mới. Trong lĩnh vực khoa học và công nghệ Meeting đang được nghiên
cứu và phát triển với tốc độ chóng mặt bởi các trung tâm nghiên cứu, các
trường đại học và học viện…. rất nhiều các lĩnh vực được ứng dụng công

nghệ này. Meeting đang rất được thỉnh hành và phát triển trong các cơng ty
lớn có thể đưa ra vài vì dụ điển hình như : Google, Amazon, Samsung,
Apple, Microsoft. Meeting là một từ ngữ tiếng anh, dịch sang tiếng việt
mang nghĩa là hội họp, cuộc họp. Từ này thường được dùng để miêu tả một
khơng gian có nhiều người đang trao đổi và bàn bạc về cơng việc. Có hai
dạng Meeting là meeting online và meeting offline. Hiện nay các cuộc
meeting có thể diễn ra trên nền tản trực tuyến. Ưu điểm của Meeting online
là số lượng người tham gia có thể lớn hơn rất nhiều so với Meeting offline.
Ngoài ra khi tiến hành họp online, các thành viên tham gia có thể dễ dàng
chia sẻ tài liệu, quản lý số lượng thành viên một cách tốt và hiệu quả nhất.
Bài tập này được hoàn thành dưới sự hướng dẫn của thầy Phạm Văn

Tiến, chúng em xin chân thành cảm ơn sự hỗ trợ của thầy. Tuy nhiên, do
lượng kiến thức và thời gian hồn thành đề tài cịn hạn hẹp, do đó khơng thể
tránh khỏi những sai sót. Nhóm chúng em rất mong nhận được những đóng
góp, phê bình, chia sẻ của thầy đ ể các sản phẩ m tiếp theo của nhóm sẽ hồn
thiện hơn.
Chúng em xin chân thành cảm ơn !

4


PHẦN I. KHÁI NIỆM LIÊN QUAN
1.

Khái niệm Meeting Online
Nhu cầu sử dụng hình thức Meeting online ngày càng gia tăng. Tuy
nhiên hình thức này sẽ có khá nhiều đặc điểm cần chú ý trong hệ thống
diễn ra cuộc họp. Để giải đáp thắc mắc cho người dùng, nhóm đã đưa ra
các khái niệm có liên quan đến meeting như sau.
Hybrid meeting có nghĩa là hội nghị kết hợp. Đây là một cuộc họp
mà trong đó một phần thành viên tham gia tại văn phòng và một số khác
tham gia từ xa. Cuộc họp hybrid meeting được kết nối bởi công nghệ số
và âm thanh, video. Hình thức họp này tập trung vào việc chia sẻ nội
dung của thông tin cuộc họp. Có thể hiểu rõ là nó có sự pha trộn giữa các
thành phần có trong cuộc họp.
Meeting passcode tức là mật mã của một cuộc họp trong các phần
mềm họp trực tuyến. Việc sử dụng mật mã sẽ giúp cuộc họp của bạn
được an tồn hơn, nó sẽ ngăn không cho những người không liên quan
tham gia vào cuộc họp của bạn. Ngoài ra phần mật khẩu này sẽ cho phép
các thành viên được tham gia vào cuộc họp một cách nhanh chóng và dễ
dàng hơn. Mật mã cuộc họp sẽ được tạo tự động hoặc do người chủ cài

đặt.

2.

Python
Python là ngơn ngữ lập trình hướng đối tượng đơn giản, dễ học,
mạnh mẽ, cấp cao. Python có cấu trúc cú pháp ít hơn các ngơn ngữ khác.
Python với triết lý thiết kế của nó rất thuận tiện cho việc đọc hiểu code,
đơn giản và rõ ràng được thiết kế bởi Guido van Rossum. Python hoàn
toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Ngơn ngữ
này có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng
hiệu quả đối với lập trình hướng đối tượng. Python là ngơn ngữ có hình
5


thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập
trình. Cấu trúc của nó cịn cho phép người sử dụng viết mã lệnh với số
lần gõ phím tối thiểu.
Python khơng phải được đặt theo tên của con rắn thần Python trong
thần thoại Hy Lạp đâu. Rossum là fan của một sê-ri chương trình hài cuối
những năm 1970, và cái tên “Python” được lấy từ tên một phần trong sêri đó “Monty Python’s Flying Circus”.
Guido Van Rossum đã xuất bản phiên bản đầu tiên của mã Python
(phiên bản 0.9.0) tại alt.sources vào tháng 2 năm 1991. Bản phát hành
này đã bao gồm xử lý ngoại lệ, các hàm và các kiểu dữ liệu cốt lõi của
list, dict, str và các loại khác. Nó cũng hướng đối tượng và có một hệ
thống mơ-đun. Phiên bản Python 1.0 được phát hành vào tháng 1 năm
1994. Các tính năng mới chính trong bản phát hành này là các cơng cụ
lập trình chức năng lambda, map, filter và reduce, những thứ mà Guido
Van Rossum khơng bao giờ thích. Sáu năm rưỡi sau vào tháng 10 năm
2000, Python 2.0 được giới thiệu. Bản phát hành này bao gồm toàn bộ

danh sách, một bộ thu gom rác đầy đủ và nó hỗ trợ unicode.
Bắt đầu từ năm 2000, các nhà phát triển cốt lõi bắt đầu nghĩ về
Python 3.0. Họ muốn hợp lý hóa ngơn ngữ, cắt các cấu trúc và chức năng
ngơn ngữ khơng cần thiết mà Python đã tích lũy được trong gần 20 năm tồn
tại của nó. Như Zen of Python nói: “Nên có một — và tốt nhất là chỉ một —
cách rõ ràng để làm điều đó”. Những nỗ lực của họ đã dẫn đến Python 3.0,
một phiên bản khơng tương thích ngược của ngơn ngữ Python được phát
hành vào tháng 12 năm 2008. Thật không may, bản phát hành đã mang lại
một số phức tạp. Các nhà phát triển đã không nhận ra bao nhiêu Python
được sử dụng và bao nhiêu mã Python ngoài tự nhiên phụ thuộc vào các thư
viện Python khác. Do đó, mặc dù dễ dàng chuyển các tập lệnh của một
người sang Python 3, nhưng việc di chuyển các chương trình dựa vào thư
viện của bên thứ ba lại khó hơn nhiều vì chúng
6


khơng nâng cấp nhanh như vậy.
3.

Github
Để có thể hiểu GitHub là gì, thì đầu tiên ta cần phải hiểu Git là gì
trước đã. Git là hệ thống quản lý phiên bản mã nguồn mở (open-source
version control system) được phát triển bởi Linus Trovalds – cũng là
người tạo ra hệ điều hành Linux. Hệ thống quản lý phiên bản giúp cho
việc lưu trữ, chỉnh sửa dễ dàng hơn trên kho lưu trữ trên server của Git.
Cho phép các lập trình viên có thể cộng tác với nhau, cũng như tải về các
phiên bản mới nhất của project, thay đổi chúng, và upload những thay đổi
mới nhất lên Git.
Github là một hệ thống quản lý dự án và phiên bản code, hoạt động
giống như một mạng xã hội cho lập trình viên. Các lập trình viên có thể

clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy
chủ repository cơng cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra
các kho chứa của riêng mình để có thể làm việc.
Github là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git
cho các dự án phần mềm. Github có đầy đủ những tính năng của Git,
ngồi ra nó cịn bổ sung những tính năng về social để các developer
tương tác với nhau.

7


PHẦN II. KỸ THUẬT
1.

Thư viện PyautoGui [1]
1.1.

Giới thiệu

PyautoGui cung cấp hỗ trợ đa nền tảng để quản lý hoạt động của
chuột và bàn phím thơng qua mã để cho phép tự động hóa các tác vụ.
1.2.

Cài đặt
Q trình cài đặt cho PyautoGui khá đơn giản cho tất cả các Hệ

điều hành. Tuy nhiên, có một số phụ thuộc cho Mac và Linux cần được
cài đặt trước khi PyautoGui có thể được cài đặt và sử dụng trong các
chương trình.
Hệ điều hành Windows

Trong Windows, PyautoGui khơng có phụ thuộc. Chỉ cần chạy lệnh sau
trong dấu nhắc lệnh của bạn và quá trình cài đặt sẽ được thực hiện.

Hình 1. Cài dặt PyautoGui trong Windows

Hệ điều hành Mac
Đối với Mac, pyobjc-core và pyobjc là cần thiết để được cài đặt theo
trình tự trước tiên. Dưới đây là lệnh mà bạn cần chạy theo trình tự trong
thiết bị đầu cuối của mình để cài đặt thành cơng

Hình 2. Cài đặt PyautoGui trong hệ điều hành Mac

Hệ điều hành Linux

8


Đối với Linux, sự phụ thuộc duy nhất là python3-xlib (dành cho python
3). Để cài đặt điều đó, tiếp theo là PyautoGui hãy chạy 2 lệnh được đề
cập bên dưới trong thiết bị đầu cuối của bạn)

Hình 3. Cài đặt PyautoGui trong Linux

1.3.

Chức năng

Chức năng position()
Trước khi chúng ta sử dụng PyautoGui, ta cần nhập nó vào chương trình
của mình


Hình 4. Thêm PyautoGui vào chương trình

position() cho biết vị trí hiện tại của con chuột trên màn hình
Hàm onScreen()
Các onScreen() cho biết điểm có tọa độ x và y có tồn tại trên màn hình
hay khơng
Hàm size()
Các size() tìm chiều cao và chiều rộng (độ phân giải) của màn hình
1.4.

Các thao tác chuột phổ biến

Hàm moveTo()
Di chuyển con trỏ chuột trên màn hình dựa trên tọa độ đã được cung cấp
dưới dạng tham số. Tham số đầu tiên là tọa độ x và tham số thứ hai là tọa
độ y. Hai tọa độ này đại diện cho vị trí tuyệt đối của con trỏ
9


Hàm moveRel()
Tọa độ moveTo() là tuyệt đối. Tuy nhiên, nếu muốn di chuyển vị trí
chuột so với vị trí chuột hiện tại, có thể sử dụng moveRel(). Điểm tham
chiếu cho hàm này, khi di chuyển con trỏ, sẽ không phải là điểm trên
cùng bên trái trên màn hình (0,0) mà là vị trí hiện tại cảu con trỏ chuột.
Hàm click()
Các click() được sử dụng để bắt chước các thao tác nhấp chuột. Cú pháp
cho click() như sau:

Hình 5. Cú pháp hàm click()


Các thơng số được giải thích như sau:
x – tọa độ x của điểm cần tiếp cận
y – tọa độ y của điểm cần tiếp cận
clicks – số lần nhấp bạn muốn thực hiện khi con trỏ đến điểm đó
trên màn hình
interval – khoảng thời gian tính bằng giây giữa mỗi lần nhấp chuột,
tức là nếu bạn đang thực hiện nhiều lần nhấp chuột.
button – chỉ định nút nào trên chuột bạn muốn nhấn khi con trỏ đến
điểm đó trên màn hình. Các giá trị có thể là right, left và middle.
Các thao tác với chuột và bàn phím
Hàm typewrite() – được sử dụng để gõ một cái gì đó trong một trường văn
bản.
Hàm hotkey() – để nhấn đồng thời hai hoặc nhiều phím, có thể sử dụng hàm
hotkey()
10


Hàm screenshot() – dùng để chụp màn hình bất kỳ lúc nào
Hàm confirm() – dùng để xác nhận, nó sẽ hiển thị thông tin và cung cấp hai
tùy chọn là OK và Cancel
Hàm alert() – dùng để thông báo, hiển thị một số thông tin và để xác nhận
rằng bạn đã đọc nó. Nó hiển thị một nút duy nhất là OK
Hàm prompt() – dùng để nhắc nhở, yêu cầu một số thông tin từ người dùng
và khi nhập, người dùng phải nhấp vào OK
2.

Thư viện webbrowser [2]
Mô-đun webbrowser cung cấp giao diện mức cao để cho phép hiển
thị các tài liệu trên nền Web cho người dùng. Trong hầu hết các trường

hợp, chúng ta chỉ cần gọi hàm open() từ mô-đun này để thực hiện. Chúng
ta sẽ sử dụng mơ-đun này để mở trình duyệt và truy cập vào trang web
mà chúng ta cần.
Ví dụ:

Hình 6. Thêm webbrowser và mở webbrowser

Câu lệnh bên trên này sẽ thực hiện mở trang được yêu cầu bằng
trình duyệt mặc định.
Phương thức open() của mơ-đun webbrowser có nhiệm vụ hiển thị
đường dẫn url bằng cách sử dụng trình duyệt mặc định.
Cú pháp của phương thức open() như sau:

Hình 7. Cú pháp của phương thức open()

Nếu tham số new có giá trị là 0, url sẽ được mở trong cùng một cửa
sổ trình duyệt nếu có thể. Nếu new là 1, một cửa sổ mới trong trình duyệt
11


sẽ được mở nếu có thể. Nếu new là 2, một trang mới trong trình duyệt
(“tab”) sẽ được mở nếu có thể. Nếu autoraise là True, cửa sổ sẽ được đưa
ra nếu có thể.
Ngồi ra, chúng ta có thể u cầu mở trang web ở một cửa sổ
window mới bằng đoạn mã như sau:

Hình 8. Mở trang web trong 1 cửa sổ mới

Chúng ta có thể thực hiện mở một trang web trên một tab mới
trong trình duyệt. Phương thức open_new() sẽ chỉ nhận vào một tham số

là đường dẫn url của trang web cần được mở.
Ví dụ:

Hình 9. Mở trang web trên 1 tab mới trong trình duyệt

Đoạn mã bên trên đây sẽ cố gắng mở trang web trong một cửa sổ
window hoặc tab mới trong trình duyệt, nếu có thể và được trình duyệt hỗ
trợ. Để mở một trang web trong một trình duyệt cụ thể, các bạn hãy sử
dụng hàm webbrowser.get() để chỉ định một trình duyệt cụ thể.
Phương thức open_new_tab() của mô-đun webbrowser bên trên sẽ
chỉ nhận một tham số đầu vào là đường dẫn url của trang web cần được
mở.
Ví dụ:

Hình 10. Hiển thị đường dẫn url của trang web cần được mở

12


Trong đoạn mã bên trên, sử dụng phương thức get() với tham số
đầu vào là đường dẫn trỏ tới vị trí chứa tệp chrome.exe và tên trình duyệt
cần mở là chrome để mở trình duyệt chrome. Cùng với đó là phương thức
open() để mở trang web mà mình muốn tìm. Chú ý là đường dẫn bên trên
là trong máy của mình, có thể thay đổi đường dẫn bên trên tương ứng với
vị trí lưu trữ tệp chrome.exe trên máy tính cá nhân.
3.

Thư viện datetime [3]
Python không tồn tại một kiểu dữ liệu cho định dạng thời gian. Thế
nhưng chúng ta có thể nhập một mơ-đun có tên datetime để làm việc với

ngày tháng dưới dạng các đối tượng thời gian.
Mudule datetime trong Python được tạo ra để làm việc và xử lý
ngày giờ cùng các mốc thời gian trong một chương trình. Các thao tác xử
lý thời gian có trong module datetime này có thể là tạo thời gian, thêm
thời gian, sửa thời gian….
Để nhập một module datetime vào trong chương trình cần sử dụng, khi
đó ta sẽ sử dụng cú pháp sau:

Hình 11. Thêm datetime vào chương trình

Các lớp thường được sử dụng trong module datetime là:
Class date
Class time
Class datetime
Class timedelta ….
Sử dụng Datetime trong Python.
Lấy ngày bằng today
Chức năng date.today có một số thuộc tính liên quan đến nó. Chúng ta
13


có thể in ngày/ tháng/ năm và nhiều thứ khác.
Lấy ngày tháng năm hiện tại

Hoặc có thể lấy riêng ra ngày, tháng hoặc năm như sau

Kết quả

Cách lấy xem hôm nay là thứ mấy trong tuần
Thư viện datetime trong python cung cấp cho ta hàm date.today() để lấy

số ngày trong tuần
Ví dụ

Tại thời điểm viết là thứ 4 ngày 30/11/2022 nên kết quả là
14


Ngày và giờ hiện tại trong python
Giống như date, chúng ta cũng có thể sử dụng thư viện datetime trong
python. Nó đưa ra ngày cùng với thời gian tính bằng giờ, phút, giây và
mili giây
Sử dụng date.now chúng ta có thể lấy được thời gian và ngày hiện tại

Kết
quả: ngày và giờ hiện tại 2022-11-30 11:11:56.333474
Nếu chỉ muốn in ra giờ, phút giây có thể làm như sau

Kết quả: giờ hiện tại 20 31 25
Cách định dạng đầu ra ngày và thời gian với Strftime()
Mặc định khi sử dụng module datetime thì một thời gian trả về sẽ theo
15


định dạng năm-tháng-ngày. Tuy nhiên, đối với chúng ta lại quen thuộc
hơn với định dạng ngày-tháng-năm và khi đó để có được định này này, ta
cần định dạng thời gian. Trong Python có các phương thức strftime() và
strptime() để xử lý việc này.
Phương thức strftime() được sử dụng để định dạng thời gian thành một
string. Ví dụ dưới đây định dạng ngày tháng sử dụng strftime() ngày
tháng trả về sẽ theo định dạng ngày-tháng-năm như sau:


Phư

ơng thức strptime() được sử dụng để phân tích một string thành thời gian.
Ví dụ dưới đây sử dụng phương thức strptime() để phân tích chuỗi “13
March, 2022” thành một đối tượng thời gian cụ thể như sau:

Cách sử dụng Timedelta
Với các timedelta, bạn có thể ước tính thời gian cho cả tương lai và quá khứ.
Nói cách khác, đó là một khoảng thời gian để dự đoán bất kỳ ngày, ngày hoặc
thời gian đặc biệt.
16


Hãy nhớ rằng chức năng này không phải để in ra thời gian hay ngày tháng, mà
là một cái gì đó để TÍNH TỐN về tương lai hoặc q khứ . Hãy xem một ví
dụ để hiểu hơn.

Kết quả: Phía trên là một ví dụ để tính xem 365 ngày sau kể từ ngày
11/11/2022 sẽ là ngày bao nhiêu, và kết quả là: 2022-11-10
20:00:36.935888
4.

Thư viện time [4]
Python có một mu – đun được đặt tên là time để xử lý các tác vụ liên
quan đến thời gian. Để sửu dụng được các chức năng trong mu – đun,
trước tiên chúng ta cần import mu-đun

Các hàm liên quan đến thời gian thường được sử dụng
Hàm time.time()

Hàm time() trả về thời gian chi tiết đến số giây.

Hàm time.ctime()
Hàm time.ctime() nhận vào thời gian dưới dạng đối số và trả về một
chuỗi hiển thị thời gian hiện tại.
17


Hàm time.sleep()
Hàm sleep() sẽ thực hiện tạm dừng luồng xử lý hiện tại trong một thời
gian nhất định (thời gian được tính bằng giây).

Hàm time.localtime()
Hàm localtime() lấy số giây được truyền vào hàm đối số và trả về
struct_time theo giờ local hiện tại

Hàm time.gmtime()
Hàm gmtime() lấy số giây được truyền vào làm đối số và trả về
struct_time sẽ là giờ UTC.

18


Hàm time.mktime()
Hàm mktime() sẽ nhận struct_time (hoặc 1 tuple chứa 9 phần tử tương
ứng với struct_time) làm đối số và trả về số giây đã trôi qua theo thời
gian local. Về cơ bản nó sẽ là hàm nghịch đảo của hàm localtime()

Hàm time.asctime()
Hàm asctime() sẽ nhận struct_time (hoặc 1 tuple chứa 9 phần tử tương

ứng với struct_time) làm đối số và trả về thời gian chi tiết cụ thể theo
format từ ngày tháng năm đến thời gian hiện tại tính đến đơn vị giây

Hàm time.strftime()
19


Hàm strftime() nhận struct_time (hoặc tuple tương ứng với nó) làm đối số
và trả về giá trị thời gian dựa vào format mà bạn quy định.

20



×