rMAL 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +55 -5
- data/lib/rMAL.rb +65 -1
- data/lib/rMAL/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a02ab8cb0341bd397f199fc400ad58d0d6a89e87
|
4
|
+
data.tar.gz: 28cbd886164e92ed3eb07a9e701bdc5826d35a82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4def24973de57061764c92a3c88e283ee3b0230b96b622bbcaa4fd40fde66d62392cb4133b30207eb3fde3a9b35b9cba6d3f805643f3897e6803a2ea4ccbac53
|
7
|
+
data.tar.gz: a17f56c9ba8d86e5b916204f17e6f05f55fa771280ef2e0d3908a6be61e7eca35c567f0736f66258ff5c4dfa767da31641dad8bb57f6e4f0766ef248ea40d094
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ MyAnimeList backend Ruby API
|
|
4
4
|
|
5
5
|
## Under Development
|
6
6
|
|
7
|
-
|
7
|
+
This project hasn't even finished adding the basic functionality yet, and so, it is certainly not ready for actual use.
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -22,7 +22,46 @@ Or install it yourself as:
|
|
22
22
|
|
23
23
|
## Usage
|
24
24
|
|
25
|
-
|
25
|
+
So far, one can do the following.
|
26
|
+
|
27
|
+
### Settings
|
28
|
+
|
29
|
+
Settings include the username, password and api-key and are all saved in a `settings.yml` file in a directory of choice.
|
30
|
+
|
31
|
+
#### Init
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
RMAL::Settings.init(dir) # dir should be where you want to store your settings (default is "/")
|
35
|
+
```
|
36
|
+
Note that this stores the directory you've chosen as the global variable `$path`.
|
37
|
+
|
38
|
+
#### Set
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
RMAL::Settings.set(username, password, apikey) # self-explanatory, no defaults
|
42
|
+
```
|
43
|
+
|
44
|
+
#### Load
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
RMAL::Settings.load(path) # Load settings, takes path to settings.yml
|
48
|
+
```
|
49
|
+
This will create the global variables `$w_username`, `$w_password` and `w_apikey`.
|
50
|
+
|
51
|
+
### Login
|
52
|
+
|
53
|
+
This just verifies credentials.
|
54
|
+
```ruby
|
55
|
+
RMAL.login
|
56
|
+
```
|
57
|
+
It'll output your login ID and username.
|
58
|
+
|
59
|
+
### Search (Not even remotely complete)
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
RMAL.search(type, query) # type is manga/anime (default anime), and query is your search query
|
63
|
+
```
|
64
|
+
So far, this just dumps the entire XML result on you. Parsing comes next.
|
26
65
|
|
27
66
|
## Contributing
|
28
67
|
|
@@ -34,10 +73,21 @@ TODO: Write usage instructions here
|
|
34
73
|
|
35
74
|
## Changelog(ue)
|
36
75
|
|
37
|
-
### 0.0.
|
76
|
+
### 0.0.3
|
38
77
|
|
39
|
-
|
78
|
+
Added functional settings and login functionality, started on search. There seems to be an issue with use:
|
79
|
+
```ruby
|
80
|
+
# Usage
|
81
|
+
RMAL::Settings.init("C:\\Users\\username\\Desktop\\Wherever") # Windows filesystem annoyances
|
82
|
+
RMAL::Settings.set("username", "password", "apikey")
|
83
|
+
RMAL.login # or search or whatever
|
84
|
+
# However, the first two lines seem to be required for execution each time, which they shouldn't. Research into this issue has yet to be started, so hopefully it's trivial.
|
85
|
+
```
|
40
86
|
|
41
87
|
### 0.0.2
|
42
88
|
|
43
|
-
Updating README and Gemfile for documentation purposes.
|
89
|
+
Updating README and Gemfile for documentation purposes.
|
90
|
+
|
91
|
+
### 0.0.1
|
92
|
+
|
93
|
+
Just getting it up to wait for MAL development user agent.
|
data/lib/rMAL.rb
CHANGED
@@ -1,5 +1,69 @@
|
|
1
1
|
require "rMAL/version"
|
2
|
+
require "yaml"
|
3
|
+
require "ox"
|
2
4
|
|
3
5
|
module RMAL
|
4
|
-
|
6
|
+
# Configuration of password, username and apikey, for use by other modules
|
7
|
+
module Settings
|
8
|
+
# Create the settings.yml file
|
9
|
+
def self.init(dir = "/") # Default dir may not have the correct access rights granted
|
10
|
+
# Allows user to not bother with the trailing / if so desired
|
11
|
+
if !(dir.end_with? "/")
|
12
|
+
dir = dir + "/"
|
13
|
+
end
|
14
|
+
# Create a settings.yml file
|
15
|
+
File.open("#{dir}settings.yml", "w") do |file|
|
16
|
+
end
|
17
|
+
# Create global path variable for ease of use
|
18
|
+
$path = "#{dir}/settings.yml"
|
19
|
+
end
|
20
|
+
# Allows the user to change the settings where necessary (and rMAL where necessary)
|
21
|
+
def self.set(username, password, apikey)
|
22
|
+
configuration = {
|
23
|
+
'username' => username,
|
24
|
+
'password' => password,
|
25
|
+
'apikey' => apikey
|
26
|
+
}
|
27
|
+
open($path, 'w') { |f| YAML.dump(configuration, f) }
|
28
|
+
open($path) { |f| return f.read }
|
29
|
+
end
|
30
|
+
# Load the settings for use in other modules
|
31
|
+
public # I know this isn't necessary, will remove later
|
32
|
+
|
33
|
+
def self.load(path)
|
34
|
+
# Load the file
|
35
|
+
settings = YAML::load_file path
|
36
|
+
# I am aware of the serious security implications of this eval(). This needs a better fix ASAP.
|
37
|
+
working = eval(settings.inspect)
|
38
|
+
# Load the settings into working variables
|
39
|
+
$w_username = working["username"]
|
40
|
+
$w_password = working["password"]
|
41
|
+
$w_apikey = working["apikey"]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
# Verify Credentials
|
45
|
+
def self.login
|
46
|
+
RMAL::Settings.load($path)
|
47
|
+
# Curl into MAL with the request
|
48
|
+
IO.popen("curl -u #{$w_username}:#{$w_password} http://myanimelist.net/api/account/verify_credentials.xml -A #{$w_apikey}") { |f| $login_response = f.read }
|
49
|
+
# Parse out the user id
|
50
|
+
login_id = Ox.parse($login_response).user.id.text
|
51
|
+
# Parse out the username
|
52
|
+
login_username = Ox.parse($login_response).user.username.text
|
53
|
+
# Display both bits of info
|
54
|
+
puts "Login ID: " + login_id, "Login Username: " + login_username
|
55
|
+
# Return both bits of info
|
56
|
+
return login_id, login_username
|
57
|
+
end
|
58
|
+
# Search anime/manga
|
59
|
+
def self.search(type = "anime", query)
|
60
|
+
RMAL::Settings.load($path)
|
61
|
+
# Replace spaces with '+'s
|
62
|
+
query = query.gsub(/\s/, "+")
|
63
|
+
# Curl into MAL with the request
|
64
|
+
IO.popen("curl -u #{$w_username}:#{$w_password} http://myanimelist.net/api/#{type}/search.xml?q=#{query} -A #{$w_apikey}") { |f| $search_response = f.read }
|
65
|
+
p $search_response # temporary
|
66
|
+
end
|
5
67
|
end
|
68
|
+
|
69
|
+
# Not done yet
|
data/lib/rMAL/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rMAL
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jude Rosen (foogit)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -94,11 +94,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
94
|
version: '0'
|
95
95
|
requirements: []
|
96
96
|
rubyforge_project:
|
97
|
-
rubygems_version: 2.
|
97
|
+
rubygems_version: 2.0.14
|
98
98
|
signing_key:
|
99
99
|
specification_version: 4
|
100
100
|
summary: MyAnimeList backend Ruby API (stable release forth-coming)
|
101
101
|
test_files:
|
102
102
|
- spec/rMAL_spec.rb
|
103
103
|
- spec/spec_helper.rb
|
104
|
-
has_rdoc:
|