summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-04-12 04:05:51 +0000
committerCoprDistGit <infra@openeuler.org>2023-04-12 04:05:51 +0000
commitb4f19b199a5c4a3f7701d82b9ba35ae5427530df (patch)
tree93f18e57ba7a606e45b8b733ac8fe3b4af722af1
parent9f39e9a776c3e8efcfa9414840db9e88ddeb3ba1 (diff)
automatic import of python-bitlyshortener
-rw-r--r--.gitignore1
-rw-r--r--python-bitlyshortener.spec356
-rw-r--r--sources1
3 files changed, 358 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..b73e7ba 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/bitlyshortener-0.6.4.tar.gz
diff --git a/python-bitlyshortener.spec b/python-bitlyshortener.spec
new file mode 100644
index 0000000..a8b6705
--- /dev/null
+++ b/python-bitlyshortener.spec
@@ -0,0 +1,356 @@
+%global _empty_manifest_terminate_build 0
+Name: python-bitlyshortener
+Version: 0.6.4
+Release: 1
+Summary: High-volume Bitly V4 URL shortener with memory-cache
+License: GNU Affero General Public License v3
+URL: https://github.com/impredicative/bitlyshortener/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8a/31/624c8366ab8f32176c7922356d2204b61b053ad098db668defced1867be2/bitlyshortener-0.6.4.tar.gz
+BuildArch: noarch
+
+Requires: python3-cachetools
+Requires: python3-requests
+
+%description
+# bitlyshortener
+**bitlyshortener** is a Python 3.7 based high-volume Bitly V4 URL shortener with a memory-cache.
+It requires and uses one or more generic access tokens provided by Bitly which it uses semi-randomly.
+As a disclaimer, this is an unofficial package and it has no association with Bitly.
+
+**As of 2022, the maintenance of this package has been discontinued because Bitly dramatically lowered their free quota per token to just 50 URLs per month.**
+
+Other Bitly operations are outside the scope of this package.
+
+[![cicd badge](https://github.com/impredicative/bitlyshortener/workflows/cicd/badge.svg?branch=master)](https://github.com/impredicative/bitlyshortener/actions?query=workflow%3Acicd+branch%3Amaster)
+
+## Links
+| Caption | Link |
+|-----------|----------------------------------------------------------|
+| Repo | https://github.com/impredicative/bitlyshortener/ |
+| Changelog | https://github.com/impredicative/bitlyshortener/releases |
+| Package | https://pypi.org/project/bitlyshortener/ |
+
+## Requirements
+### Tokens
+#### Obtaining tokens
+This package doesn't include any access token. To obtain one:
+* Sign up for a new Bitly account at [https://bitly.com/a/sign_up](https://nullrefer.com/?https://bitly.com/a/sign_up).
+An email address such as `YourGmailUsername+SomeSuffix01@gmail.com` should work.
+* On the "Let's keep this short" page, click "Skip to your homepage".
+* Verify the email address by clicking the link in the confirmation email.
+This is a necessary step.
+It can on rare occasions be necessary to have the confirmation email resent.
+* Under "Profile Settings", select "Generic Access Token".
+* Enter password and click Generate Token.
+
+#### Rate limits
+In Nov 2022, Bitly sent an email advising that the rate limit per token was lowered to 50 per month, effective Dec 8, 2022.
+
+The following were previously the rate limits per token:
+* Per minute: 100 (presumably for status 200 or 201)
+* Per hour: 1000 (presumably for status 200 or 201)
+* Per month: 1000 (presumably for status 201 only)
+
+Bitly sends a monthly email if 50% of the account's usage limit for new short links is exceeded for the calendar month.
+If this email is received, it is suggested to immediately obtain and add additional tokens to the pool used by this package.
+As follows, it is preferable to stay under 50% of the usage limit by having a sufficiently big pool of tokens.
+It is possible to monitor the usage via the **`.usage()`** method as shown in the examples.
+
+It is unknown what the per-IP rate limit is, if any.
+
+### Python
+Python ≥3.7 is required.
+Any older version of Python will not work due to the use of
+[`ThreadPoolExecutor`](https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor)
+with an *initializer*.
+
+## Usage
+To install the package, run:
+
+ $ pip install bitlyshortener
+
+Usage examples:
+```python
+>>> import bitlyshortener
+
+# Setup
+>>> tokens_pool = ['9fbe2864bb8872f5027c103321ff91be90aea687', '0cbe3864bc8872f5027c103321ff91be30aea787'] # Use your own.
+>>> shortener = bitlyshortener.Shortener(tokens=tokens_pool, max_cache_size=256)
+
+# Shorten to list
+>>> long_urls = ['https://www.amazon.com/gp/product/B07LFJMS2S/', 'https://www.cnn.com/election/2020', 'https://paperswithcode.com/sota']
+>>> shortener.shorten_urls(long_urls)
+['https://amzn.to/3Inxf9V', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3tLlp5w']
+
+# Shorten to dict
+>>> long_urls = ['https://news.google.com', 'https://yahoo.com/']
+>>> shortener.shorten_urls_to_dict(long_urls)
+{'https://news.google.com': 'https://bit.ly/3IjSObD', 'https://yahoo.com/': 'https://yhoo.it/2BiHgp8'}
+
+# Normalize diverse preexisting Bitly links
+>>> urls = ['http://bit.ly/3Ad49Hw', 'http://j.mp/2Bo2LVf', 'https://cnn.it/3FKKZd8', 'https://j.mp/websniffer']
+>>> shortener.shorten_urls(urls)
+['https://bit.ly/3Ad49Hw', 'https://bit.ly/3KjocZw', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3nINKph']
+
+# Show usage for tokens pool (is cached for an hour)
+>>> shortener.usage()
+0.4604 # Means that an average of 46% of the current calendar month's URL shortening quota has been used across all tokens.
+
+# Show cache info
+>>> shortener.cache_info
+{'Shortener._shorten_url': CacheInfo(hits=4, misses=10, maxsize=256, currsize=10)}
+```
+
+To obtain the fastest response, URLs must be shortened together in a batch as in the examples above.
+A thread pool of up to 32 concurrent requesters can be used, but no more than up to five per randomized token.
+For example, if two tokens are supplied, up to 2 * 5 = 10 concurrent workers are used.
+If eight tokens are supplied, then not 8 * 5 = 40, but a max of 32 concurrent workers are used.
+The max limit can, if really necessary, be increased by setting `config.MAX_WORKERS` before initializing the shortener.
+
+
+%package -n python3-bitlyshortener
+Summary: High-volume Bitly V4 URL shortener with memory-cache
+Provides: python-bitlyshortener
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-bitlyshortener
+# bitlyshortener
+**bitlyshortener** is a Python 3.7 based high-volume Bitly V4 URL shortener with a memory-cache.
+It requires and uses one or more generic access tokens provided by Bitly which it uses semi-randomly.
+As a disclaimer, this is an unofficial package and it has no association with Bitly.
+
+**As of 2022, the maintenance of this package has been discontinued because Bitly dramatically lowered their free quota per token to just 50 URLs per month.**
+
+Other Bitly operations are outside the scope of this package.
+
+[![cicd badge](https://github.com/impredicative/bitlyshortener/workflows/cicd/badge.svg?branch=master)](https://github.com/impredicative/bitlyshortener/actions?query=workflow%3Acicd+branch%3Amaster)
+
+## Links
+| Caption | Link |
+|-----------|----------------------------------------------------------|
+| Repo | https://github.com/impredicative/bitlyshortener/ |
+| Changelog | https://github.com/impredicative/bitlyshortener/releases |
+| Package | https://pypi.org/project/bitlyshortener/ |
+
+## Requirements
+### Tokens
+#### Obtaining tokens
+This package doesn't include any access token. To obtain one:
+* Sign up for a new Bitly account at [https://bitly.com/a/sign_up](https://nullrefer.com/?https://bitly.com/a/sign_up).
+An email address such as `YourGmailUsername+SomeSuffix01@gmail.com` should work.
+* On the "Let's keep this short" page, click "Skip to your homepage".
+* Verify the email address by clicking the link in the confirmation email.
+This is a necessary step.
+It can on rare occasions be necessary to have the confirmation email resent.
+* Under "Profile Settings", select "Generic Access Token".
+* Enter password and click Generate Token.
+
+#### Rate limits
+In Nov 2022, Bitly sent an email advising that the rate limit per token was lowered to 50 per month, effective Dec 8, 2022.
+
+The following were previously the rate limits per token:
+* Per minute: 100 (presumably for status 200 or 201)
+* Per hour: 1000 (presumably for status 200 or 201)
+* Per month: 1000 (presumably for status 201 only)
+
+Bitly sends a monthly email if 50% of the account's usage limit for new short links is exceeded for the calendar month.
+If this email is received, it is suggested to immediately obtain and add additional tokens to the pool used by this package.
+As follows, it is preferable to stay under 50% of the usage limit by having a sufficiently big pool of tokens.
+It is possible to monitor the usage via the **`.usage()`** method as shown in the examples.
+
+It is unknown what the per-IP rate limit is, if any.
+
+### Python
+Python ≥3.7 is required.
+Any older version of Python will not work due to the use of
+[`ThreadPoolExecutor`](https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor)
+with an *initializer*.
+
+## Usage
+To install the package, run:
+
+ $ pip install bitlyshortener
+
+Usage examples:
+```python
+>>> import bitlyshortener
+
+# Setup
+>>> tokens_pool = ['9fbe2864bb8872f5027c103321ff91be90aea687', '0cbe3864bc8872f5027c103321ff91be30aea787'] # Use your own.
+>>> shortener = bitlyshortener.Shortener(tokens=tokens_pool, max_cache_size=256)
+
+# Shorten to list
+>>> long_urls = ['https://www.amazon.com/gp/product/B07LFJMS2S/', 'https://www.cnn.com/election/2020', 'https://paperswithcode.com/sota']
+>>> shortener.shorten_urls(long_urls)
+['https://amzn.to/3Inxf9V', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3tLlp5w']
+
+# Shorten to dict
+>>> long_urls = ['https://news.google.com', 'https://yahoo.com/']
+>>> shortener.shorten_urls_to_dict(long_urls)
+{'https://news.google.com': 'https://bit.ly/3IjSObD', 'https://yahoo.com/': 'https://yhoo.it/2BiHgp8'}
+
+# Normalize diverse preexisting Bitly links
+>>> urls = ['http://bit.ly/3Ad49Hw', 'http://j.mp/2Bo2LVf', 'https://cnn.it/3FKKZd8', 'https://j.mp/websniffer']
+>>> shortener.shorten_urls(urls)
+['https://bit.ly/3Ad49Hw', 'https://bit.ly/3KjocZw', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3nINKph']
+
+# Show usage for tokens pool (is cached for an hour)
+>>> shortener.usage()
+0.4604 # Means that an average of 46% of the current calendar month's URL shortening quota has been used across all tokens.
+
+# Show cache info
+>>> shortener.cache_info
+{'Shortener._shorten_url': CacheInfo(hits=4, misses=10, maxsize=256, currsize=10)}
+```
+
+To obtain the fastest response, URLs must be shortened together in a batch as in the examples above.
+A thread pool of up to 32 concurrent requesters can be used, but no more than up to five per randomized token.
+For example, if two tokens are supplied, up to 2 * 5 = 10 concurrent workers are used.
+If eight tokens are supplied, then not 8 * 5 = 40, but a max of 32 concurrent workers are used.
+The max limit can, if really necessary, be increased by setting `config.MAX_WORKERS` before initializing the shortener.
+
+
+%package help
+Summary: Development documents and examples for bitlyshortener
+Provides: python3-bitlyshortener-doc
+%description help
+# bitlyshortener
+**bitlyshortener** is a Python 3.7 based high-volume Bitly V4 URL shortener with a memory-cache.
+It requires and uses one or more generic access tokens provided by Bitly which it uses semi-randomly.
+As a disclaimer, this is an unofficial package and it has no association with Bitly.
+
+**As of 2022, the maintenance of this package has been discontinued because Bitly dramatically lowered their free quota per token to just 50 URLs per month.**
+
+Other Bitly operations are outside the scope of this package.
+
+[![cicd badge](https://github.com/impredicative/bitlyshortener/workflows/cicd/badge.svg?branch=master)](https://github.com/impredicative/bitlyshortener/actions?query=workflow%3Acicd+branch%3Amaster)
+
+## Links
+| Caption | Link |
+|-----------|----------------------------------------------------------|
+| Repo | https://github.com/impredicative/bitlyshortener/ |
+| Changelog | https://github.com/impredicative/bitlyshortener/releases |
+| Package | https://pypi.org/project/bitlyshortener/ |
+
+## Requirements
+### Tokens
+#### Obtaining tokens
+This package doesn't include any access token. To obtain one:
+* Sign up for a new Bitly account at [https://bitly.com/a/sign_up](https://nullrefer.com/?https://bitly.com/a/sign_up).
+An email address such as `YourGmailUsername+SomeSuffix01@gmail.com` should work.
+* On the "Let's keep this short" page, click "Skip to your homepage".
+* Verify the email address by clicking the link in the confirmation email.
+This is a necessary step.
+It can on rare occasions be necessary to have the confirmation email resent.
+* Under "Profile Settings", select "Generic Access Token".
+* Enter password and click Generate Token.
+
+#### Rate limits
+In Nov 2022, Bitly sent an email advising that the rate limit per token was lowered to 50 per month, effective Dec 8, 2022.
+
+The following were previously the rate limits per token:
+* Per minute: 100 (presumably for status 200 or 201)
+* Per hour: 1000 (presumably for status 200 or 201)
+* Per month: 1000 (presumably for status 201 only)
+
+Bitly sends a monthly email if 50% of the account's usage limit for new short links is exceeded for the calendar month.
+If this email is received, it is suggested to immediately obtain and add additional tokens to the pool used by this package.
+As follows, it is preferable to stay under 50% of the usage limit by having a sufficiently big pool of tokens.
+It is possible to monitor the usage via the **`.usage()`** method as shown in the examples.
+
+It is unknown what the per-IP rate limit is, if any.
+
+### Python
+Python ≥3.7 is required.
+Any older version of Python will not work due to the use of
+[`ThreadPoolExecutor`](https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor)
+with an *initializer*.
+
+## Usage
+To install the package, run:
+
+ $ pip install bitlyshortener
+
+Usage examples:
+```python
+>>> import bitlyshortener
+
+# Setup
+>>> tokens_pool = ['9fbe2864bb8872f5027c103321ff91be90aea687', '0cbe3864bc8872f5027c103321ff91be30aea787'] # Use your own.
+>>> shortener = bitlyshortener.Shortener(tokens=tokens_pool, max_cache_size=256)
+
+# Shorten to list
+>>> long_urls = ['https://www.amazon.com/gp/product/B07LFJMS2S/', 'https://www.cnn.com/election/2020', 'https://paperswithcode.com/sota']
+>>> shortener.shorten_urls(long_urls)
+['https://amzn.to/3Inxf9V', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3tLlp5w']
+
+# Shorten to dict
+>>> long_urls = ['https://news.google.com', 'https://yahoo.com/']
+>>> shortener.shorten_urls_to_dict(long_urls)
+{'https://news.google.com': 'https://bit.ly/3IjSObD', 'https://yahoo.com/': 'https://yhoo.it/2BiHgp8'}
+
+# Normalize diverse preexisting Bitly links
+>>> urls = ['http://bit.ly/3Ad49Hw', 'http://j.mp/2Bo2LVf', 'https://cnn.it/3FKKZd8', 'https://j.mp/websniffer']
+>>> shortener.shorten_urls(urls)
+['https://bit.ly/3Ad49Hw', 'https://bit.ly/3KjocZw', 'https://cnn.it/3FKKZd8', 'https://bit.ly/3nINKph']
+
+# Show usage for tokens pool (is cached for an hour)
+>>> shortener.usage()
+0.4604 # Means that an average of 46% of the current calendar month's URL shortening quota has been used across all tokens.
+
+# Show cache info
+>>> shortener.cache_info
+{'Shortener._shorten_url': CacheInfo(hits=4, misses=10, maxsize=256, currsize=10)}
+```
+
+To obtain the fastest response, URLs must be shortened together in a batch as in the examples above.
+A thread pool of up to 32 concurrent requesters can be used, but no more than up to five per randomized token.
+For example, if two tokens are supplied, up to 2 * 5 = 10 concurrent workers are used.
+If eight tokens are supplied, then not 8 * 5 = 40, but a max of 32 concurrent workers are used.
+The max limit can, if really necessary, be increased by setting `config.MAX_WORKERS` before initializing the shortener.
+
+
+%prep
+%autosetup -n bitlyshortener-0.6.4
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-bitlyshortener -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.4-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..88afecc
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+fa724df2b88ae236bcc46ec0ee58447f bitlyshortener-0.6.4.tar.gz