Phụ thuộc Python Xkcd

Đây là thư viện Python để truy cập và truy xuất các liên kết đến truyện tranh từ webcomic xkcd của Randall Munroe. Nó KHÔNG được anh ấy xác nhận hoặc thực hiện, đó là một dự án hoàn toàn độc lập

Nó sử dụng giao diện JSON cho trang web của Randall để truy xuất dữ liệu truyện tranh. Cả Python 2 và Python 3 đều được hỗ trợ và không có phụ thuộc nào ngoài thư viện chuẩn Python, vì vậy dấu chân của xkcd sẽ rất nhẹ

Có hỗ trợ truy cập truyện tranh cụ thể, truyện tranh mới nhất hoặc truyện tranh ngẫu nhiên. Siêu dữ liệu truyện tranh có thể được truy vấn và bản thân truyện tranh có thể được tải xuống hệ thống cục bộ của bạn. Mục tiêu chỉ đơn giản là cung cấp một trình bao bọc Pythonic tương đối xung quanh API xkcd cho bất kỳ chương trình hoặc thư viện Python nào muốn truy cập thông tin về truyện tranh xkcd, vì lý do này hay lý do khác

Mô-đun xkcd, kể từ phiên bản 2. 4. 0, cũng hỗ trợ nhận thông tin về các bài viết What If từ whatif. xkcd. com. Thông tin này được tạo bằng cách cạo trang lưu trữ What If bằng trình phân tích cú pháp HTML

Phân tích sâu hơn về trạng thái bảo trì của simplebot-xkcd dựa trên nhịp phiên bản PyPI đã phát hành, hoạt động của kho lưu trữ và các điểm dữ liệu khác đã xác định rằng việc bảo trì của nó là Không hoạt động

Một tín hiệu bảo trì dự án quan trọng cần xem xét đối với Simplebot-xkcd là nó không thấy bất kỳ phiên bản mới nào được phát hành cho PyPI trong 12 tháng qua và có thể được coi là một dự án đã ngừng hoạt động hoặc nhận được ít sự chú ý từ những người bảo trì dự án.

Là một dấu hiệu lành mạnh cho việc bảo trì dự án đang diễn ra, chúng tôi nhận thấy rằng kho lưu trữ GitHub có ít nhất 1 yêu cầu kéo hoặc vấn đề được cộng đồng tương tác

Gói PyPI xkcd. py nhận được tổng cộng 55 lượt tải xuống mỗi tuần. Như vậy, chúng tôi đã ghi được xkcd. mức độ phổ biến py bị hạn chế

Dựa trên số liệu thống kê dự án từ kho lưu trữ GitHub cho gói PyPI xkcd. py, chúng tôi nhận thấy rằng nó đã được gắn dấu sao 1 lần và không có dự án nào khác trong hệ sinh thái phụ thuộc vào nó

Đây là thư viện Python để truy cập và truy xuất các liên kết đến truyện tranh từ webcomic xkcd của Randall Munroe. Nó KHÔNG được anh ấy xác nhận hoặc thực hiện, đó là một dự án hoàn toàn độc lập

Nó sử dụng giao diện JSON cho trang web của Randall để truy xuất dữ liệu truyện tranh. Cả Python 2 và Python 3 đều được hỗ trợ và không có phụ thuộc nào ngoài thư viện chuẩn Python, vì vậy dấu chân của xkcd sẽ rất nhẹ

Có hỗ trợ truy cập truyện tranh cụ thể, truyện tranh mới nhất hoặc truyện tranh ngẫu nhiên. Siêu dữ liệu truyện tranh có thể được truy vấn và bản thân truyện tranh có thể được tải xuống hệ thống cục bộ của bạn. Mục tiêu chỉ đơn giản là cung cấp một trình bao bọc Pythonic tương đối xung quanh API xkcd cho bất kỳ chương trình hoặc thư viện Python nào muốn truy cập thông tin về truyện tranh xkcd, vì lý do này hay lý do khác

Mô-đun xkcd, kể từ phiên bản 2. 4. 0, cũng hỗ trợ nhận thông tin về các bài viết What If từ whatif. xkcd. com. Thông tin này được tạo bằng cách cạo trang lưu trữ What If bằng trình phân tích cú pháp HTML

lớp xkcd._______1 ( số )

Lớp đại diện cho một truyện tranh xkcd duy nhất. Chúng có thể được sản xuất thông qua một số cách; . g. Comic(số nguyên)), nhưng cách được đề xuất là sử dụng hàm getComic()

Ngoài ra còn có các chức năng trợ giúp để lấy truyện tranh mới nhất (getLatestComic()) và truyện tranh ngẫu nhiên (getRandomComic()) làm đối tượng truyện tranh

download ( đầu ra='', đầu raFile='', im lặng=True )

Tải hình ảnh của truyện tranh về máy tính của bạn

Tranh luận

đầu ra. thư mục đầu ra nơi truyện tranh sẽ được tải xuống. Đối số mặc định cho 'đầu ra là chuỗi rỗng;

đầu raTệp. tên tệp sẽ được ghi. Nếu chuỗi trống được chuyển, Tệp đầu ra sẽ mặc định là một chuỗi có dạng xkcd-(số truyện tranh)-(tên tệp hình ảnh), ví dụ: xkcd-1691-optimization. png

im lặng. boolean, mặc định là True. Nếu được đặt thành Sai, một lỗi sẽ được in ra đầu ra tiêu chuẩn nếu đối số số nguyên được cung cấp không hợp lệ

Trả về đường dẫn đến tệp đã tải xuống hoặc một chuỗi trống trong trường hợp không thành công

getAltText ()

Trả về văn bản thay thế của truyện tranh (văn bản xuất hiện khi một người đặt con trỏ lên hình ảnh trong trình duyệt web) dưới dạng chuỗi Unicode được định dạng UTF-8

getAsciiAltText ()

Trả về phiên bản định dạng ASCII của văn bản thay thế truyện tranh. Xem getAsciiTitle()getAltText() để biết thêm thông tin

Comic0 ()

Trả về phiên bản định dạng ASCII của liên kết đến hình ảnh của truyện tranh. Xem getAsciiTitle()Comic2 để biết thêm thông tin

Comic3 ()

Trả về phiên bản định dạng ASCII của tiêu đề

Hàm này và các hàm thu thập ASCII khác trong lớp Truyện tranh tồn tại để mã phụ thuộc vào một số thành phần Python 2 kế thừa, như Twisted (tại thời điểm viết bài này không hỗ trợ Unicode tốt lắm) có thể truy xuất phiên bản siêu dữ liệu truyện tranh mà họ có thể sử dụng. Nó sử dụng hàm trợ giúp Comic4 để thay thế các ký tự mà Python không thể tự động chuyển đổi bằng dấu ”?”

Bạn nên cố gắng hết sức để không cần sử dụng thói quen này và ưu tiên Comic5 bất cứ khi nào có thể

Comic6 ()

Trả về một liên kết giải thíchxkcd cho truyện tranh. giải thíchxkcd là một wiki với các giải thích do cộng đồng đóng góp cho truyện tranh xkcd;

Comic7 ()

Trả về một URL liên kết đến hình ảnh của truyện tranh dưới dạng chuỗi Unicode được định dạng UTF-8

Comic8 ()

Trả về tên tệp của hình ảnh truyện tranh dưới dạng chuỗi Unicode được định dạng UTF-8

Comic9 ()

Trả về tiêu đề của truyện tranh, dưới dạng chuỗi Unicode được định dạng UTF-8

getComic()0 ()

Sử dụng mô-đun trình duyệt web Python để mở truyện tranh trong trình duyệt web của hệ thống của bạn

lớp _______0getComic()

Lớp đại diện cho một bài viết xkcd What If

Lớp WhatIf có phần đơn giản hơn lớp getComic()3. Nó chỉ đơn giản cung cấp các chức năng để truy vấn thông tin về liên kết đến, tiêu đề và chỉ mục của bài viết What If

Không giống như lớp getComic()3, bạn không có ý định xây dựng chúng trực tiếp. Thay vào đó, hãy gọi getComic()5 để tạo một số ánh xạ từ điển tới các đối tượng WhatIf và sau đó chọn (các) đối tượng bạn quan tâm

getComic()6 ()

Trả về một liên kết đến bài viết What If

getComic()7 ()

Trả về số của bài viết What If

Comic9 ()

Trả về tiêu đề của bài viết What If

lớp _______0getLatestComic()

WhatIfArchiveParser là một lớp con của trình phân tích cú pháp HTML thư viện chuẩn Python. Nó được gọi bởi getComic()5 để phân tích trang lưu trữ xkcd What If và tự động điền các đối tượng getLatestComic()2

Vì không có API JSON cho blog What If (hoặc ít nhất, tác giả không thể tìm thấy), đây có vẻ là cách đơn giản nhất để triển khai tìm nạp thông tin về chúng

Lớp này chỉ được thiết kế để sử dụng nội bộ;

getLatestComic()3 ()

Trả về một từ điển gồm các đối tượng getLatestComic()2, được lập chỉ mục theo số của chúng. Chức năng này phải được gọi sau khi phân tích cú pháp HTML kết thúc, tôi. e. sau khi tự gọi mình. nguồn cấp dữ liệu

Nếu vì lý do nào đó việc phân tích cú pháp không thành công, từ điển sẽ trống

xkcd.getLatestComic()6 ( string, error='?' )

Hàm tiện ích chuyển đổi chuỗi unicode thành ASCII. Điều này tồn tại để lớp getComic()3 có thể tương thích với các thư viện Python 2 mong đợi các chuỗi ASCII, chẳng hạn như Twisted (dù sao thì khi viết bài này). Không chắc là bạn sẽ cần một thứ gì đó trực tiếp và việc sử dụng nó không được khuyến khích

Tranh luận

dây. các chuỗi để cố gắng chuyển đổi

lỗi. một chuỗi sẽ được thay thế thành 'chuỗi' ở bất cứ nơi nào Python không thể tự động thực hiện chuyển đổi

convertToAscii trả về chuỗi đã chuyển đổi

xkcd.getLatestComic()9 ( số, im lặng=True )

Tạo một đối tượng getComic()3 với chỉ mục bằng với đối số được cung cấp. In lỗi trong trường hợp xảy ra lỗi (i. e. số nhỏ hơn 0 hoặc lớn hơn số truyện tranh mới nhất) và trả về một đối tượng Truyện tranh trống

Tranh luận

một số nguyên hoặc chuỗi đại diện cho một số, "số", đó là chỉ mục của truyện tranh được đề cập

im lặng. boolean, mặc định là True. Nếu được đặt thành Sai, một lỗi sẽ được in ra đầu ra tiêu chuẩn nếu đối số số nguyên được cung cấp không hợp lệ

Trả về đối tượng Truyện tranh kết quả cho chỉ mục được cung cấp nếu thành công hoặc đối tượng Truyện tranh với -1 làm chỉ mục nếu không

xkcd.getRandomComic()2 ()

Tạo một đối tượng getComic()3 cho truyện tranh xkcd mới nhất. Hàm này chỉ là một trình bao quanh lệnh gọi tới getRandomComic()4, sau đó xây dựng một đối tượng getComic()3 trên giá trị trả về của nó

Trả về đối tượng truyện tranh kết quả

xkcd.getRandomComic()7 ()

Sử dụng JSON API xkcd để tra cứu số truyện tranh xkcd mới nhất

Trả về số đó dưới dạng số nguyên

xkcd.getRandomComic()9 ( archive=None )

Trả về một đối tượng getLatestComic()2 đại diện cho bài viết What If mới nhất

Có một đối số "lưu trữ" tùy chọn. Nếu đối số này là Không, quy trình getComic()5 trước tiên được gọi để điền vào kho lưu trữ các bài báo What If đã xuất bản. Tuy nhiên, nếu không, "kho lưu trữ" được coi là một từ điển và được sử dụng làm tập hợp các bài viết để lựa chọn

xkcd.download3 ( archive=None )

Trả về một số nguyên đại diện cho số bài báo What If mới nhất được xuất bản. Điều này được thực hiện bằng cách gọi download4 và trả về số kết quả của phương thức đó

Có một đối số "lưu trữ" tùy chọn. Nếu đối số này là Không, quy trình getComic()5 trước tiên được gọi để điền vào kho lưu trữ các bài báo What If đã xuất bản. Tuy nhiên, nếu không, "kho lưu trữ" được coi là một từ điển và được sử dụng làm tập hợp các bài viết để lựa chọn

xkcd.download7 ()

Tạo đối tượng getComic()3 cho truyện tranh xkcd ngẫu nhiên. Sử dụng trình tạo số ngẫu nhiên của thư viện tiêu chuẩn Python để chọn truyện tranh

Trả về đối tượng truyện tranh kết quả

xkcd.getAltText0 ()

Trả về một đối tượng getLatestComic()2 được tạo ngẫu nhiên, sử dụng trình tạo số ngẫu nhiên của thư viện tiêu chuẩn Python để chọn đối tượng. Đối tượng được trả về từ từ điển được tạo bởi getComic()5;

xkcd.getAltText4 ( số )

Trả về một đối tượng getLatestComic()2 tương ứng với bài viết What If của chỉ mục được truyền cho hàm. Nếu chỉ mục nhỏ hơn 0 hoặc lớn hơn số lượng bài viết tối đa được xuất bản cho đến nay, thì Không có gì được trả về thay thế

Giống như tất cả các thói quen để xử lý các bài báo What If, getComic()5 được gọi đầu tiên để thiết lập một danh sách tất cả các What If đã được xuất bản trước đó

Tranh luận

con số. một số nguyên hoặc chuỗi đại diện cho một số, đây là chỉ mục của các bài báo cần truy xuất

Trả về các đối tượng getLatestComic()2 kết quả

xkcd.getAltText9 ()

Phân tích cú pháp kho lưu trữ xkcd What If. getWhatIfArchive chuyển văn bản HTML của trang lưu trữ vào một getAsciiAltText0, sau đó gọi phương thức getAsciiAltText1 của trình phân tích cú pháp và trả về từ điển được tạo

Hàm này trả về một số bài báo ánh xạ từ điển tới các đối tượng getLatestComic()2 cho mọi bài báo What If đã được xuất bản cho đến nay. Nếu phân tích cú pháp không thành công, vì bất kỳ lý do gì, từ điển sẽ trống