summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-circleguard.spec308
-rw-r--r--sources1
3 files changed, 310 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..79f7a90 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/circleguard-5.4.0.tar.gz
diff --git a/python-circleguard.spec b/python-circleguard.spec
new file mode 100644
index 0000000..9365410
--- /dev/null
+++ b/python-circleguard.spec
@@ -0,0 +1,308 @@
+%global _empty_manifest_terminate_build 0
+Name: python-circleguard
+Version: 5.4.0
+Release: 1
+Summary: A utilities library for osu!. Provides support for parsing replays from a file or from the api, as well as support for unstable rate, hits, similarity, and frametime calculations.
+License: GNU General Public License v3 (GPLv3)
+URL: https://github.com/circleguard/circlecore
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/55/9d/ecb5f191b7d278a6c562b084e90c9035a06c94eca5d20869f6193afb4aa6/circleguard-5.4.0.tar.gz
+BuildArch: noarch
+
+Requires: python3-osrparse
+Requires: python3-ossapi
+Requires: python3-wtc
+Requires: python3-numpy
+Requires: python3-requests
+Requires: python3-slider
+Requires: python3-scipy
+Requires: python3-matplotlib
+
+%description
+<img src="readme_resources/logo.png" alt="logo" width="200" height="200"/>
+
+[![PyPi version](https://badge.fury.io/py/circleguard.svg)](https://pypi.org/project/circleguard/)
+
+# Circlecore ([documentation](https://circleguard.github.io/circlecore/))
+
+Circlecore is a utilities library for osu!. Features include:
+
+* Unstable Rate calculation
+* Judgments calculation (classifying all hitobjects into misses, hit300s, hit100s, hit50s, or sliderbreaks)
+* Similarity calculation between two replays, for replay stealing detection
+* Frametime calculation, for timewarp detection
+* Jerky, suspicious movement detection (called Snaps)
+
+Circlecore is used by [Circleguard](https://github.com/circleguard/circleguard), a replay analysis tool.
+
+Circlecore is developed and maintained by:
+
+* [tybug](https://github.com/tybug)
+* [samuelhklumpers](https://github.com/samuelhklumpers)
+
+## Installation
+
+Circlecore can be installed from pip:
+
+```bash
+pip install circleguard
+```
+
+This documentation refers to the project as `circlecore` to differentiate it from our organization [Circleguard](https://github.com/circleguard) and the replay analysis tool [Circleguard](https://github.com/circleguard/circleguard). However, `circlecore` is installed from pypi with the name `circleguard`, and is imported as such in code (`import circleguard`).
+
+## Links
+
+Github: <https://github.com/circleguard/circlecore> <br/>
+Documentation: <https://circleguard.github.io/circlecore/> <br/>
+Discord: <https://discord.gg/VNnkTjm> <br/>
+
+## Usage
+
+We have a full tutorial and documentation at <https://circleguard.github.io/circlecore/>. If you really want to jump right in, below is a quickstart guide:
+
+```python
+from circleguard import *
+
+# replace "key" with your api key
+cg = Circleguard("key")
+# replay on http://osu.ppy.sh/b/221777 by http://osu.ppy.sh/u/2757689
+replay = ReplayMap(221777, 2757689)
+
+print(cg.ur(replay)) # unstable rate
+print(cg.frametime(replay)) # average frametime
+print(cg.frametimes(replay)) # full frametime list
+print(cg.hits(replay)) # where the replay hits hitobjects
+print(cg.snaps(replay)) # any jerky/suspicious movement
+
+replay2 = ReplayMap(221777, 4196808)
+print(cg.similarity(replay, replay2)) # how similar the replays are
+
+# ReplayMap isn't the only way to represent replays; we can also
+# get a beatmap's top 3 plays
+map_ = cg.Map(221777, span="1-3")
+# or a User's fifteenth and twentieth best plays
+user = cg.User(124493, span="15, 20")
+# or a local replay
+replay3 = ReplayPath("/path/to/local/osr/replay.osr")
+# and more. You can find them all at
+# https://circleguard.github.io/circlecore/appendix.html#circleguard.loadables.Loadable
+
+# maps and users can be iterated over
+for r in map_:
+ print(cg.ur(r))
+```
+
+## Contributing
+
+Join [our discord](https://discord.gg/VNnkTjm) and ask how you can help, or look around for open issues which interest you and tackle those. Pull requests are welcome!
+
+
+%package -n python3-circleguard
+Summary: A utilities library for osu!. Provides support for parsing replays from a file or from the api, as well as support for unstable rate, hits, similarity, and frametime calculations.
+Provides: python-circleguard
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-circleguard
+<img src="readme_resources/logo.png" alt="logo" width="200" height="200"/>
+
+[![PyPi version](https://badge.fury.io/py/circleguard.svg)](https://pypi.org/project/circleguard/)
+
+# Circlecore ([documentation](https://circleguard.github.io/circlecore/))
+
+Circlecore is a utilities library for osu!. Features include:
+
+* Unstable Rate calculation
+* Judgments calculation (classifying all hitobjects into misses, hit300s, hit100s, hit50s, or sliderbreaks)
+* Similarity calculation between two replays, for replay stealing detection
+* Frametime calculation, for timewarp detection
+* Jerky, suspicious movement detection (called Snaps)
+
+Circlecore is used by [Circleguard](https://github.com/circleguard/circleguard), a replay analysis tool.
+
+Circlecore is developed and maintained by:
+
+* [tybug](https://github.com/tybug)
+* [samuelhklumpers](https://github.com/samuelhklumpers)
+
+## Installation
+
+Circlecore can be installed from pip:
+
+```bash
+pip install circleguard
+```
+
+This documentation refers to the project as `circlecore` to differentiate it from our organization [Circleguard](https://github.com/circleguard) and the replay analysis tool [Circleguard](https://github.com/circleguard/circleguard). However, `circlecore` is installed from pypi with the name `circleguard`, and is imported as such in code (`import circleguard`).
+
+## Links
+
+Github: <https://github.com/circleguard/circlecore> <br/>
+Documentation: <https://circleguard.github.io/circlecore/> <br/>
+Discord: <https://discord.gg/VNnkTjm> <br/>
+
+## Usage
+
+We have a full tutorial and documentation at <https://circleguard.github.io/circlecore/>. If you really want to jump right in, below is a quickstart guide:
+
+```python
+from circleguard import *
+
+# replace "key" with your api key
+cg = Circleguard("key")
+# replay on http://osu.ppy.sh/b/221777 by http://osu.ppy.sh/u/2757689
+replay = ReplayMap(221777, 2757689)
+
+print(cg.ur(replay)) # unstable rate
+print(cg.frametime(replay)) # average frametime
+print(cg.frametimes(replay)) # full frametime list
+print(cg.hits(replay)) # where the replay hits hitobjects
+print(cg.snaps(replay)) # any jerky/suspicious movement
+
+replay2 = ReplayMap(221777, 4196808)
+print(cg.similarity(replay, replay2)) # how similar the replays are
+
+# ReplayMap isn't the only way to represent replays; we can also
+# get a beatmap's top 3 plays
+map_ = cg.Map(221777, span="1-3")
+# or a User's fifteenth and twentieth best plays
+user = cg.User(124493, span="15, 20")
+# or a local replay
+replay3 = ReplayPath("/path/to/local/osr/replay.osr")
+# and more. You can find them all at
+# https://circleguard.github.io/circlecore/appendix.html#circleguard.loadables.Loadable
+
+# maps and users can be iterated over
+for r in map_:
+ print(cg.ur(r))
+```
+
+## Contributing
+
+Join [our discord](https://discord.gg/VNnkTjm) and ask how you can help, or look around for open issues which interest you and tackle those. Pull requests are welcome!
+
+
+%package help
+Summary: Development documents and examples for circleguard
+Provides: python3-circleguard-doc
+%description help
+<img src="readme_resources/logo.png" alt="logo" width="200" height="200"/>
+
+[![PyPi version](https://badge.fury.io/py/circleguard.svg)](https://pypi.org/project/circleguard/)
+
+# Circlecore ([documentation](https://circleguard.github.io/circlecore/))
+
+Circlecore is a utilities library for osu!. Features include:
+
+* Unstable Rate calculation
+* Judgments calculation (classifying all hitobjects into misses, hit300s, hit100s, hit50s, or sliderbreaks)
+* Similarity calculation between two replays, for replay stealing detection
+* Frametime calculation, for timewarp detection
+* Jerky, suspicious movement detection (called Snaps)
+
+Circlecore is used by [Circleguard](https://github.com/circleguard/circleguard), a replay analysis tool.
+
+Circlecore is developed and maintained by:
+
+* [tybug](https://github.com/tybug)
+* [samuelhklumpers](https://github.com/samuelhklumpers)
+
+## Installation
+
+Circlecore can be installed from pip:
+
+```bash
+pip install circleguard
+```
+
+This documentation refers to the project as `circlecore` to differentiate it from our organization [Circleguard](https://github.com/circleguard) and the replay analysis tool [Circleguard](https://github.com/circleguard/circleguard). However, `circlecore` is installed from pypi with the name `circleguard`, and is imported as such in code (`import circleguard`).
+
+## Links
+
+Github: <https://github.com/circleguard/circlecore> <br/>
+Documentation: <https://circleguard.github.io/circlecore/> <br/>
+Discord: <https://discord.gg/VNnkTjm> <br/>
+
+## Usage
+
+We have a full tutorial and documentation at <https://circleguard.github.io/circlecore/>. If you really want to jump right in, below is a quickstart guide:
+
+```python
+from circleguard import *
+
+# replace "key" with your api key
+cg = Circleguard("key")
+# replay on http://osu.ppy.sh/b/221777 by http://osu.ppy.sh/u/2757689
+replay = ReplayMap(221777, 2757689)
+
+print(cg.ur(replay)) # unstable rate
+print(cg.frametime(replay)) # average frametime
+print(cg.frametimes(replay)) # full frametime list
+print(cg.hits(replay)) # where the replay hits hitobjects
+print(cg.snaps(replay)) # any jerky/suspicious movement
+
+replay2 = ReplayMap(221777, 4196808)
+print(cg.similarity(replay, replay2)) # how similar the replays are
+
+# ReplayMap isn't the only way to represent replays; we can also
+# get a beatmap's top 3 plays
+map_ = cg.Map(221777, span="1-3")
+# or a User's fifteenth and twentieth best plays
+user = cg.User(124493, span="15, 20")
+# or a local replay
+replay3 = ReplayPath("/path/to/local/osr/replay.osr")
+# and more. You can find them all at
+# https://circleguard.github.io/circlecore/appendix.html#circleguard.loadables.Loadable
+
+# maps and users can be iterated over
+for r in map_:
+ print(cg.ur(r))
+```
+
+## Contributing
+
+Join [our discord](https://discord.gg/VNnkTjm) and ask how you can help, or look around for open issues which interest you and tackle those. Pull requests are welcome!
+
+
+%prep
+%autosetup -n circleguard-5.4.0
+
+%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-circleguard -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 17 2023 Python_Bot <Python_Bot@openeuler.org> - 5.4.0-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..a07ac7d
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+e97729247ea6834fed661e70b09286ef circleguard-5.4.0.tar.gz