yanapi 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +19 -0
- data/README +12 -0
- data/README.rdoc +23 -0
- data/Rakefile +14 -0
- data/lib/yanapi.rb +6 -0
- data/lib/yanapi/category_query.rb +10 -0
- data/lib/yanapi/error.rb +37 -0
- data/lib/yanapi/query.rb +188 -0
- data/lib/yanapi/question_query.rb +10 -0
- data/lib/yanapi/term_query.rb +30 -0
- data/lib/yanapi/user_query.rb +10 -0
- data/lib/yanapi/version.rb +3 -0
- data/test/data/bad_xml.txt +236 -0
- data/test/data/empty_result.txt +13 -0
- data/test/data/error_code.txt +237 -0
- data/test/data/response_with_error.txt +15 -0
- data/test/data/successfull_response.txt +237 -0
- data/test/test_query.rb +112 -0
- data/test/test_term_query.rb +64 -0
- data/yanapi.gemspec +23 -0
- metadata +118 -0
data/LICENSE
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Copyright (c) 2011 Andrei Beliankou, University of Trier, Germany
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
|
+
of this software and associated documentation files (the "Software"), to deal
|
5
|
+
in the Software without restriction, including without limitation the rights
|
6
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
7
|
+
copies of the Software, and to permit persons to whom the Software is
|
8
|
+
furnished to do so, subject to the following conditions:
|
9
|
+
|
10
|
+
The above copyright notice and this permission notice shall be included in
|
11
|
+
all copies or substantial portions of the Software.
|
12
|
+
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
|
+
THE SOFTWARE.
|
data/README
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
= YANAPI
|
2
|
+
|
3
|
+
* {RubyGems}[http://rubygems.org/gems/yanapi]
|
4
|
+
* Developers {Homepage}[http://www.uni-trier.de/index.php?id=24140]
|
5
|
+
* {YANAPI Project Page}[http://yanapi.rubyforge.org/]
|
6
|
+
|
7
|
+
== DESCRIPTION
|
8
|
+
|
9
|
+
YANAPI is an API for Yahoo! Answers web services.
|
10
|
+
|
11
|
+
== SYNOPSIS
|
12
|
+
$ require 'yanapi'
|
13
|
+
$ params = {:query => 'car', :appid => 'YahooDemo'}
|
14
|
+
$ api = YANAPI::TermQuery.new(params)
|
15
|
+
$ api.get # => default xml structure
|
16
|
+
|
17
|
+
See RDOC documentation for details on particular methods.
|
18
|
+
|
19
|
+
== LICENSE
|
20
|
+
|
21
|
+
YANAPI is a copyrighted software by Andrei Beliankou, 2011.
|
22
|
+
You may use, redistribute and change it under the terms
|
23
|
+
provided in the LICENSE file.
|
data/Rakefile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
# we can require 'rake/clean' to add 'clobber' and 'clean' tasks
|
4
|
+
require 'rake/clean'
|
5
|
+
require 'rake/testtask'
|
6
|
+
|
7
|
+
|
8
|
+
SRC = FileList['**/*.rb']
|
9
|
+
|
10
|
+
CLOBBER.include('doc', '**/*.html', '**/*.gem')
|
11
|
+
|
12
|
+
Rake::TestTask.new do |t|
|
13
|
+
t.test_files = FileList.new('test/**/test_*.rb')
|
14
|
+
end
|
data/lib/yanapi.rb
ADDED
data/lib/yanapi/error.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module YANAPI
|
2
|
+
class Error < RuntimeError; end
|
3
|
+
|
4
|
+
# The result is illformed (as xml|json|php|rss) and cannot be parsed
|
5
|
+
# or contains an error message.
|
6
|
+
# Human beings should pay attention to it!
|
7
|
+
class ContentError < Error
|
8
|
+
# it takes a kind of Exception or String as the argument
|
9
|
+
def initialize(arg)
|
10
|
+
if arg.kind_of? String
|
11
|
+
msg = arg
|
12
|
+
else
|
13
|
+
msg = "You got illformed content:\n" +
|
14
|
+
"#{arg.message} (#{arg.class})"
|
15
|
+
end
|
16
|
+
super(msg)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# A technical error accessing the server,
|
21
|
+
# may be caught and handled with a new attempt.
|
22
|
+
class ExternalError < Error
|
23
|
+
def initialize(exception)
|
24
|
+
msg = "Some external error occured:\n" +
|
25
|
+
"#{exception.class}: #{exception.message}"
|
26
|
+
super(msg)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# This kind of error is used, if there is no answer to our request.
|
31
|
+
# The status code is 200 OK and the xml structure is valid, but
|
32
|
+
# there is no useful information in the response.
|
33
|
+
# We can check this way if we have just placed a too strict request or
|
34
|
+
# we are out of the response range (but we are under the :start limitations).
|
35
|
+
class EmptyResponse < Error
|
36
|
+
end
|
37
|
+
end # YANAPI
|
data/lib/yanapi/query.rb
ADDED
@@ -0,0 +1,188 @@
|
|
1
|
+
# This code is based on ideas from "rc_rest" and "yahoo" gems.
|
2
|
+
# gem install nokogiri
|
3
|
+
require 'nokogiri'
|
4
|
+
require 'net/http'
|
5
|
+
require 'uri'
|
6
|
+
|
7
|
+
require 'yanapi/error'
|
8
|
+
|
9
|
+
|
10
|
+
module YANAPI
|
11
|
+
class Query
|
12
|
+
HOST = 'http://answers.yahooapis.com'
|
13
|
+
SERVICE = 'AnswersService'
|
14
|
+
SERVICE_VERSION = 'V1'
|
15
|
+
|
16
|
+
attr_accessor :output, :url
|
17
|
+
|
18
|
+
def initialize(params)
|
19
|
+
# xml|json|php|rss
|
20
|
+
@output = params[:output] || 'xml'
|
21
|
+
|
22
|
+
# it is a bad idea to alter the parameters hash
|
23
|
+
# that's why we duplicate the parameters
|
24
|
+
checked_params = check_params(params.dup)
|
25
|
+
@url = build_url(checked_params)
|
26
|
+
|
27
|
+
$stderr.puts 'Full url:', @url if $DEBUG
|
28
|
+
end
|
29
|
+
|
30
|
+
# main method
|
31
|
+
def get
|
32
|
+
http_response = Net::HTTP.get_response(@url)
|
33
|
+
|
34
|
+
case @output
|
35
|
+
when 'xml'
|
36
|
+
# Set the value to STRICT (0), otherwise no errors will be raised!
|
37
|
+
result = Nokogiri::XML::Document.parse(http_response.body, nil, nil, 0)
|
38
|
+
prove_xml(result)
|
39
|
+
when 'json'
|
40
|
+
raise NotImplementedError, 'We do not handle JSON yet!'
|
41
|
+
result = ''
|
42
|
+
prove_json(result)
|
43
|
+
when 'php'
|
44
|
+
raise NotImplementedError, 'We do not handle PHP yet!'
|
45
|
+
result = ''
|
46
|
+
prove_php(result)
|
47
|
+
when 'rss'
|
48
|
+
raise NotImplementedError, 'We do not handle RSS yet!'
|
49
|
+
result = ''
|
50
|
+
prove_rss(result)
|
51
|
+
end
|
52
|
+
|
53
|
+
# TODO: make a fine grained distinction
|
54
|
+
case http_response
|
55
|
+
when Net::HTTPSuccess
|
56
|
+
return result.to_s
|
57
|
+
when Net::HTTPMovedPermanently,
|
58
|
+
Net::HTTPFound,
|
59
|
+
Net::HTTPSeeOther,
|
60
|
+
Net::HTTPTemporaryRedirect
|
61
|
+
raise ContentError.new("#{http_response}:\n\n#{result}")
|
62
|
+
else
|
63
|
+
raise ContentError.new("#{http_response}:\n\n#{result}")
|
64
|
+
end
|
65
|
+
|
66
|
+
# are all external errors caught here?
|
67
|
+
rescue Net::HTTPError, SocketError, Timeout::Error,
|
68
|
+
IOError, SystemCallError => e
|
69
|
+
raise ExternalError, e
|
70
|
+
# add JSON, PHP, RSS errors here
|
71
|
+
rescue Nokogiri::XML::SyntaxError => e
|
72
|
+
raise ContentError.new(e)
|
73
|
+
end # get
|
74
|
+
|
75
|
+
protected
|
76
|
+
|
77
|
+
# Returns an URI::HTTP object containing the complete url for the request.
|
78
|
+
def build_url(params)
|
79
|
+
search_method = params[:method]
|
80
|
+
params.delete(:method)
|
81
|
+
|
82
|
+
base_url = [HOST, SERVICE, SERVICE_VERSION, search_method].join('/')
|
83
|
+
|
84
|
+
params = expand_params(params)
|
85
|
+
reserved_chars = Regexp.new(/[!*'();:@&=+$,\/?#\]\[]/)
|
86
|
+
# Every string is escaped twice.
|
87
|
+
# First time to allow only ascii characters.
|
88
|
+
# Second time to escape all url reserved chars.
|
89
|
+
escaped_params = params.collect do |k, v|
|
90
|
+
k = URI.escape((URI.escape(k.to_s)), unsafe = reserved_chars)
|
91
|
+
v = URI.escape((URI.escape(v.to_s)), usafe = reserved_chars)
|
92
|
+
"#{k}=#{v}"
|
93
|
+
end
|
94
|
+
|
95
|
+
query = escaped_params.join('&')
|
96
|
+
if $DEBUG
|
97
|
+
$stderr.print 'Joined query parameters: '
|
98
|
+
$stderr.puts query
|
99
|
+
end
|
100
|
+
|
101
|
+
url = URI.parse(base_url + '?' + query)
|
102
|
+
|
103
|
+
return url
|
104
|
+
end # build_url
|
105
|
+
|
106
|
+
# Check params, my sheet
|
107
|
+
#--
|
108
|
+
# validates presense of :method
|
109
|
+
# validates type of :method
|
110
|
+
# validates presense of :appid
|
111
|
+
# validates uniqueness of all params
|
112
|
+
# (category_name|category_id may or region be repeated)
|
113
|
+
# default values will be propagated, not deleted (defaults can change)
|
114
|
+
def check_params(params)
|
115
|
+
unless params.include?(:appid)
|
116
|
+
raise Error, 'APPID is missing!'
|
117
|
+
end
|
118
|
+
unless params.include?(:method)
|
119
|
+
raise Error, 'Search Method is missing!'
|
120
|
+
end
|
121
|
+
|
122
|
+
allowed_methods = %w(questionSearch getByUser getByCategory getQuestion)
|
123
|
+
unless allowed_methods.include?(params[:method])
|
124
|
+
raise Error, "The search method #{params[:method]} is not supported!"
|
125
|
+
end
|
126
|
+
|
127
|
+
allowed_output = [nil, 'xml', 'json', 'rss', 'php']
|
128
|
+
unless allowed_output.include?(params[:output])
|
129
|
+
raise Error, "The output type #{params[:output]} is not supported!"
|
130
|
+
end
|
131
|
+
|
132
|
+
if params[:output] != 'json' && params[:callback]
|
133
|
+
raise Error, "The output type #{@output} is not supported!"
|
134
|
+
end
|
135
|
+
return params
|
136
|
+
end
|
137
|
+
|
138
|
+
# proves the presense of an error
|
139
|
+
# proves it the answer set is empty
|
140
|
+
def prove_xml(xml)
|
141
|
+
error = xml.at_xpath('/xmlns:Error', xml.root.namespaces)
|
142
|
+
if error
|
143
|
+
message = 'The following errors were detected:'
|
144
|
+
error.xpath('//xmlns:Message', xml.root.namespaces).each do |msg|
|
145
|
+
message << "\n" + msg.content
|
146
|
+
end
|
147
|
+
raise ContentError.new(message)
|
148
|
+
end
|
149
|
+
|
150
|
+
question = xml.at_xpath('//xmlns:Question', xml.root.namespaces)
|
151
|
+
unless question
|
152
|
+
message = 'The server returned an empty Result Set.'
|
153
|
+
raise EmptyResponse.new(message)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
#
|
158
|
+
def prove_json(json)
|
159
|
+
raise NotImplementedError, 'We do not handle JSON yet!'
|
160
|
+
end
|
161
|
+
|
162
|
+
#
|
163
|
+
def prove_php(php)
|
164
|
+
raise NotImplementedError, 'We do not handle PHP yet!'
|
165
|
+
end
|
166
|
+
|
167
|
+
#
|
168
|
+
def prove_rss(rss)
|
169
|
+
raise NotImplementedError, 'We do not handle RSS yet!'
|
170
|
+
end
|
171
|
+
|
172
|
+
def expand_params(params)
|
173
|
+
expanded_params = []
|
174
|
+
|
175
|
+
params.each do |k,v|
|
176
|
+
if v.respond_to? :each and not String === v then
|
177
|
+
v.each { |s| expanded_params << [k, s] }
|
178
|
+
else
|
179
|
+
expanded_params << [k, v]
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
expanded_params.sort_by { |k,v| [k.to_s, v.to_s] }
|
184
|
+
end
|
185
|
+
|
186
|
+
end # Query
|
187
|
+
|
188
|
+
end # YANAPI
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module YANAPI
|
2
|
+
|
3
|
+
class TermQuery < Query
|
4
|
+
|
5
|
+
def initialize(params)
|
6
|
+
|
7
|
+
params[:method] = 'questionSearch'
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
# specific checks for
|
13
|
+
#--
|
14
|
+
# validates presense of query
|
15
|
+
# validates uniqueness of query
|
16
|
+
# validates the range of :start
|
17
|
+
# validates the range of :results
|
18
|
+
# validates the :region semantics
|
19
|
+
# validates the :type uniqueness and semantics
|
20
|
+
# validates uniqueness of the :date_range and its semantics
|
21
|
+
# validates semantics of all possible parameter names
|
22
|
+
def check_params(params)
|
23
|
+
unless params[:query]
|
24
|
+
raise Error, "Query is missing!"
|
25
|
+
end
|
26
|
+
super
|
27
|
+
end
|
28
|
+
|
29
|
+
end # TermQuery
|
30
|
+
end # YANAPI
|
@@ -0,0 +1,236 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Thu, 27 Jan 2011 14:08:59 GMT
|
3
|
+
P3P: policyref="http://info.yahoo.com/w3c/p3p.xml", CP="CAO DSP COR CUR ADM DEV TAI PSA PSD IVAi IVDi CONi TELo OTPi OUR DELi SAMi OTRi UNRi PUBi IND PHY ONL UNI PUR FIN COM NAV INT DEM CNT STA POL HEA PRE LOC GOV"
|
4
|
+
Vary: Accept-Encoding
|
5
|
+
Connection: close
|
6
|
+
Transfer-Encoding: chunked
|
7
|
+
Content-Type: text/xml; charset=utf-8
|
8
|
+
Cache-Control: private
|
9
|
+
|
10
|
+
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
11
|
+
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:answers" xsi:schemaLocation="urn:yahoo:answers http://answers.yahooapis.com/AnswersService/V1/QuestionResponse.xsd">
|
12
|
+
tion id="20080307115814AARQDKS" type="Answer
|
13
|
+
<Subject>Wo kann ich in RheinlandPfalz Region Donnersberg ein Gemuesekistenabo vom Biobauern bekommen?</Subject>
|
14
|
+
<Content>
|
15
|
+
</Content>
|
16
|
+
<Date>2008-03-07 11:58:14</Date>
|
17
|
+
<Timestamp>1204919894</Timestamp>
|
18
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20080307115814AARQDKS</Link> <Category id="396545372">Sonstiges - Essen & Trinken</Category>
|
19
|
+
<UserId>EBt4evYzaa</UserId>
|
20
|
+
<UserNick>Anja</UserNick>
|
21
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
22
|
+
<NumAnswers>2</NumAnswers>
|
23
|
+
<NumComments>0</NumComments>
|
24
|
+
<ChosenAnswer>http://www.gemuesekiste.de/index.cfm?page=anbieter_bl</ChosenAnswer>
|
25
|
+
<ChosenAnswererId>QfhvwrqPaa</ChosenAnswererId>
|
26
|
+
<ChosenAnswererNick>feinschmeckerde</ChosenAnswererNick>
|
27
|
+
<ChosenAnswerTimestamp>1204929973</ChosenAnswerTimestamp>
|
28
|
+
<ChosenAnswerAwardTimestamp>1205435661</ChosenAnswerAwardTimestamp>
|
29
|
+
</Question>
|
30
|
+
<Question id="20090623132429AAvoGCw" type="Answered">
|
31
|
+
<Subject>Freiwilliges ökologisches jahr in Rheinlandpfalz zu spät?</Subject>
|
32
|
+
<Content>Bin ich da zu spät oder geht noch was?
|
33
|
+
|
34
|
+
|
35
|
+
Wenn nicht was kann ich machen? Wie könnte ich das Jahr überbrücken.
|
36
|
+
Cntent>
|
37
|
+
<Date>2009-06-23 13:24:29</Date>
|
38
|
+
<Timestamp>1245788669</Timestamp>
|
39
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090623132429AAvoGCw</Link>
|
40
|
+
Category id="396545364">Sonstiges - Schule & Bildung</Category>
|
41
|
+
<UserId>J6pND01qaa</UserId>
|
42
|
+
<UserNick>Schack K</UserNick>
|
43
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
44
|
+
<NumAnswers>1</NumAnswers>
|
45
|
+
<NumComments>0</NumComments>
|
46
|
+
<ChosenAnswer>Es ist noch nicht zu spät, aber beeil dich. Du solltest bis 30.7. Zeit haben:
|
47
|
+
http://www.foej.de/traeger.html
|
48
|
+
|
49
|
+
bzw. nur für RLP: http://www.foej-rlp.de/, evtl. vorab telefonisch anfragen und dann ggf. die Bewerbung (sollte fertig sein) hinterherschicken, erspart Bewerbungen, die sowieso in der Tonne landen.
|
50
|
+
|
51
|
+
Viel Glück und viel Spaß!</ChosenAnswer>
|
52
|
+
<ChosenAnswererId>LgL6WSoraa</ChosenAnswererId>
|
53
|
+
<ChosenAnswererNick>momo</ChosenAnswererNick>
|
54
|
+
<ChosenAnswerTimestamp>1245822423</ChosenAnswerTimestamp>
|
55
|
+
<ChosenAnswerAwardTimestamp>1246115817</ChosenAnswerAwardTimestamp>
|
56
|
+
</Question>
|
57
|
+
<Question id="20080506133823AAmd6Xj" type="Answered">
|
58
|
+
<Subject>Gibt es noch eine Region in Deutschland wo es so viele verschiedene Dialekte gibt wie in der Pfalz?</Subject>
|
59
|
+
<Content>Pfälzisch ist ein Dialekt, der schwierig zu erlernen und nachzuahmen ist, denn in der ländlich geprägten Pfalz spricht noch heute jede Region und Ortschaft ihren spezifischen Dialekt, der alle paar Kilometer seine Färbung ändert. Ein Pirmasenser (Südwestpfalz) unterscheidet sich deutlich von einem Landauer. Ein Landauer (Südpfalz) unterscheidet sich deutlich von einem Ludwigshäfer (Vorderpfalz). Und ein Ludwigshafener unterscheidet sich ebenso deutlich von einem Kaiserslauterer (Westpfalz).
|
60
|
+
</Content>
|
61
|
+
<Date>2008-05-06 13:38:23</Date>
|
62
|
+
<Timestamp>1210106303</Timestamp>
|
63
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20080506133823AAmd6Xj</Link>
|
64
|
+
<Category id="396546962">Rheinland-Pfalz</Category>
|
65
|
+
<UserId>9QeMUvgdaa</UserId>
|
66
|
+
<UserNick>Heidi</UserNick>
|
67
|
+
<UserPhotoURL>http://l.yimg.com/dg/users/1IzLIImc-AAEBQqFpQBPkArJCGTlbd98x4gI=.medium.png</UserPhotoURL>
|
68
|
+
<NumAnswers>5</NumAnswers>
|
69
|
+
<NumComments>0</NumComments>
|
70
|
+
<ChosenAnswer>mir pälzer sinn ähmolisch :-)
|
71
|
+
Wir Pfälzer sind einmalig :-)</ChosenAnswer>
|
72
|
+
<ChosenAnswererId>JIpBCUdMaa</ChosenAnswererId>
|
73
|
+
<ChosenAnswererNick>ஜ.DARK.ஜ</ChosenAnswererNick>
|
74
|
+
<ChosenAnswerTimestamp>1210138558</ChosenAnswerTimestamp>
|
75
|
+
<ChosenAnswerAwardTimestamp>1210160631</ChosenAnswerAwardTimestamp>
|
76
|
+
</Question>
|
77
|
+
<Question id="20090201080835AAS78iS" type="Answered">
|
78
|
+
<Subject>Wo kann man sich in Rheinland Pfalz auf Geschlechtskrankheiten untersuchen lassen?</Subject>
|
79
|
+
<Content>Ich würde mich gern auf Geschlechtskrankheiten untersuchen lassen, aber ich weiss nicht wie das in Deutschland geht. Gibt es besondere Kliniks oder sollte ich dem Krankenhaus anrufen?
|
80
|
+
Ich bin Ausländerin und wohne seit ein paar Monaten hier...
|
81
|
+
</Content>
|
82
|
+
<Date>2009-02-01 08:08:35</Date>
|
83
|
+
<Timestamp>1233504515</Timestamp>
|
84
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090201080835AAS78iS</Link>
|
85
|
+
<Category id="396545390">Geschlechtskrankheiten</Category>
|
86
|
+
<UserId>75WCghuTaa</UserId>
|
87
|
+
<UserNick>Laura C</UserNick>
|
88
|
+
<UserPhotoURL>http://l.yimg.com/q/users/14zzdbfYBAAEB4wSDNt3ACw==.medium.jpg</UserPhotoURL>
|
89
|
+
<NumAnswers>12</NumAnswers>
|
90
|
+
<NumComments>0</NumComments>
|
91
|
+
<ChosenAnswer>Du kannst einfach ins Krankenhaus oder zum Frauen artz gehen, und dich dort informeiren.
|
92
|
+
Einige Kliniken bieten das auch an.
|
93
|
+
Aber du kannst dort einfach Nachfragen, dei wissen es am besten</ChosenAnswer>
|
94
|
+
<ChosenAnswererId>lb5u6wNkaa</ChosenAnswererId>
|
95
|
+
<ChosenAnswererNick>Nisi</ChosenAnswererNick>
|
96
|
+
<ChosenAnswerTimestamp>1233504759</ChosenAnswerTimestamp>
|
97
|
+
<ChosenAnswerAwardTimestamp>1233648510</ChosenAnswerAwardTimestamp>
|
98
|
+
</Question>
|
99
|
+
<Question id="20090118023353AAXzf4k" type="Answered">
|
100
|
+
<Subject>Was kann ich machen bei regenwetter in Landau in der Pfalz und umgebung?</Subject>
|
101
|
+
<Content>
|
102
|
+
</Content>
|
103
|
+
<Date>2009-01-18 02:33:53</Date>
|
104
|
+
<Timestamp>1232274833</Timestamp>
|
105
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090118023353AAXzf4k</Link>
|
106
|
+
<Category id="396547136">Sonstige Städte - Deutschland</Category>
|
107
|
+
<UserId>rx6f8RhZaa</UserId>
|
108
|
+
<UserNick>Seppo29</UserNick>
|
109
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
110
|
+
<NumAnswers>6</NumAnswers>
|
111
|
+
<NumComments>0</NumComments>
|
112
|
+
<ChosenAnswer>Im Cart-Center Indoor Cart fahren oder auch ins schöne Kino ( es gibt ein älteres billigeres Kino ich bevorzuge jedoch das Kino FilmWelt ) Auch shoppen kann sehr schön sein.
|
113
|
+
|
114
|
+
|
115
|
+
Abends würde ich mich jedoch nicht in Landau aufhalten ( in den straßen herum laufen , in kinos oder cafes sind O.K. ) dar die jungendlichen sehr gerne ärger ( also schlägereien oder leute zum beleidigen) suchen .
|
116
|
+
|
117
|
+
ICH WÜNSCHE DIR VIEL SPASS IN LANDAU
|
118
|
+
MFG Trashy xD</ChosenAnswer>
|
119
|
+
<ChosenAnswererId>cgrzC1HRaa</ChosenAnswererId>
|
120
|
+
<ChosenAnswererNick>trashkill</ChosenAnswererNick>
|
121
|
+
<ChosenAnswerTimestamp>1232275350</ChosenAnswerTimestamp>
|
122
|
+
<ChosenAnswerAwardTimestamp>1232495758</ChosenAnswerAwardTimestamp>
|
123
|
+
</Question>
|
124
|
+
<Question id="20090331072343AAGU6ZL" type="Answered">
|
125
|
+
<Subject>Parcour Verein in der Oberpfalz Raum Weiden oder Umgebung?</Subject>
|
126
|
+
<Content>Hi kennt ihr einen Verein der Parcour anbietet oder sowas in der Richtung??
|
127
|
+
Also ich wohn in Weiden i.d.Opf und der Verein sollt halt ned zuweit entfernt sein...
|
128
|
+
</Content>
|
129
|
+
<Date>2009-03-31 07:23:43</Date>
|
130
|
+
<Timestamp>1238509423</Timestamp>
|
131
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090331072343AAGU6ZL</Link>
|
132
|
+
<Category id="396545468">Sonstige Sportarten</Category>
|
133
|
+
<UserId>oIW6fEB8aa</UserId>
|
134
|
+
<UserNick>Philip</UserNick>
|
135
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
136
|
+
<NumAnswers>2</NumAnswers>
|
137
|
+
<NumComments>0</NumComments>
|
138
|
+
<ChosenAnswer>Am besten fragst du mal die Reitvereine in dieser Umgebung an, ob die welche Parcours kennen. Die werden dir sicherlich sagen, wo es welche gibt.
|
139
|
+
|
140
|
+
|
141
|
+
Z.B.: http://www.bayerntours.com/opw/freizeit/reiten.htm
|
142
|
+
|
143
|
+
Reiten in der Oberpfalz, - ein unvergessliches Erlebnis für Sie und Ihr Pferd. Genießen Sie die einzigartige Landschaft zwischen dem Urgebirge des Bayerischen und des Oberpfälzer Waldes mit seinen weiten schwingenden Höhen (300-800m ü. N.N.) und dem Kalkgebirge des Jura mit seinen bizarren Felsen und tiefen Höhlen im Westen, - ein herbes, dünn besiedeltes land mit vielen Teichen, klaren Bächen und unergründlichen Flüssen, die aus den tiefen Wälder kommen, überragt von den alten Burgen und mächtigen Ruinen, die einen weiten Blick über die stille Landschaft gewähren und stumme Zeugen unserer Geschichte sind. Hier mit dem Pferd unterwegs zu sein, heißt auch auf fast 10.000 km2 alle Möglichkeiten zu finden: von leichten Tagesetappen bis hin zu anspruchsvollen Berg- und Distanzritten, von der kleinen gemütlichen Wanderreitstation bis hin zur professionellen Reitsportanlage.</ChosenAnswer>
|
144
|
+
<ChosenAnswererId>E1Q70EQvaa</ChosenAnswererId>
|
145
|
+
<ChosenAnswererNick>paratrooper</ChosenAnswererNick>
|
146
|
+
<ChosenAnswerTimestamp>1238883853</ChosenAnswerTimestamp>
|
147
|
+
<ChosenAnswerAwardTimestamp>1239374636</ChosenAnswerAwardTimestamp>
|
148
|
+
</Question>
|
149
|
+
<Question id="20110123171356AAX0nSj" type="Answered">
|
150
|
+
<Subject>Warum räumt man einem Irren in der Pfalz sein Waffenarsenal aus, und Iran die Atombombe bauen?</Subject>
|
151
|
+
<Content>
|
152
|
+
@?: Erkläre mir bitte den Inhalt Deiner Antwort. Danke
|
153
|
+
@Engin: Und läßt Iran die Atombombe bauen.
|
154
|
+
|
155
|
+
So mancher Superarsch hier sollte sich einmal seine Rechtschreibung und Satzstellung betrachten, bevor er andere maß regelt.
|
156
|
+
</Content>
|
157
|
+
<Date>2011-01-23 17:13:56</Date>
|
158
|
+
<Timestamp>1295831636</Timestamp>
|
159
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20110123171356AAX0nSj</Link>
|
160
|
+
<Category id="396545442">Sonstiges - Nachrichten & Medien</Category>
|
161
|
+
<UserId>7i0Zjl6Faa</UserId>
|
162
|
+
<UserNick>Manamana</UserNick>
|
163
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/profile_48a.png</UserPhotoURL>
|
164
|
+
<NumAnswers>14</NumAnswers>
|
165
|
+
<NumComments>0</NumComments>
|
166
|
+
<ChosenAnswer>Weil im Iran nicht das deutsche Waffengesetz gilt.</ChosenAnswer>
|
167
|
+
<ChosenAnswererId>J9STtpUnaa</ChosenAnswererId>
|
168
|
+
<ChosenAnswererNick>Desperadox</ChosenAnswererNick>
|
169
|
+
<ChosenAnswerTimestamp>1295834232</ChosenAnswerTimestamp>
|
170
|
+
<ChosenAnswerAwardTimestamp>1295917544</ChosenAnswerAwardTimestamp>
|
171
|
+
</Question>
|
172
|
+
<Question id="20071231002838AAV6P8g" type="Answered">
|
173
|
+
<Subject>Wie lange hat der Aldi Süd in Rheinland-Pfalz heute geöffnet!?..:-D?</Subject>
|
174
|
+
<Content>
|
175
|
+
</Content>
|
176
|
+
<Date>2007-12-31 00:28:38</Date>
|
177
|
+
<Timestamp>1199089718</Timestamp>
|
178
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20071231002838AAV6P8g</Link>
|
179
|
+
<Category id="396545372">Sonstiges - Essen & Trinken</Category>
|
180
|
+
<UserId>d913b2c41d1223e16b35ef2127cae18caa</UserId>
|
181
|
+
<UserNick>Sweety</UserNick>
|
182
|
+
<UserPhotoURL>http://l.yimg.com/q/users/1XNi2YcGMAAED-GF6PBPpwpmkFgHjYaEM.medium.jpg</UserPhotoURL>
|
183
|
+
<NumAnswers>7</NumAnswers>
|
184
|
+
<NumComments>0</NumComments>
|
185
|
+
<ChosenAnswer>Jo, der erste hat recht. es haben heute deutschlandweit alle Lebensmittelgeschäfte bis max. 14 Uhr geöffnet. RLP erst recht.</ChosenAnswer>
|
186
|
+
<ChosenAnswererId>bPCz7JOCaa</ChosenAnswererId>
|
187
|
+
<ChosenAnswererNick>Tolula</ChosenAnswererNick>
|
188
|
+
<ChosenAnswerTimestamp>1199090785</ChosenAnswerTimestamp>
|
189
|
+
<ChosenAnswerAwardTimestamp>1199299531</ChosenAnswerAwardTimestamp>
|
190
|
+
</Question>
|
191
|
+
<Question id="20090621063405AAZ4Q67" type="Answered">
|
192
|
+
<Subject>Wer kennt einen Badesee für Menschen und Hunde im Umkreis von 100 km von Frankenthal in der Pfalz?</Subject>
|
193
|
+
<Content>Unser Hund ist total verrückt nach Wasser und wir schwimmen selber gerne. Vielleicht weiß ja jemand einen See in unserer Nähe.
|
194
|
+
Danke im Vorraus
|
195
|
+
</Content>
|
196
|
+
<Date>2009-06-21 06:34:05</Date>
|
197
|
+
<Timestamp>1245591245</Timestamp>
|
198
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090621063405AAZ4Q67</Link>
|
199
|
+
<Category id="396546021">Hunde</Category>
|
200
|
+
<UserId>dwmZQQz2aa</UserId>
|
201
|
+
<UserNick>xyz</UserNick>
|
202
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
203
|
+
<NumAnswers>2</NumAnswers>
|
204
|
+
<NumComments>0</NumComments>
|
205
|
+
<ChosenAnswer>Leider wohne ich nicht in deinem BL.
|
206
|
+
Ich kann dir aber den Tipp geben, mal beim Ordnungsamt nachzufragen. Die kennen alle für Hunde freigegebenen Flächen und auch Badeseen in deiner Umgebung. Wenn es da etwas gibt, können die dir das ganz sicher sagen. Und du hast die Gewissheit, dass es stimmt; das es nicht auf einmal ein böses Erwachen gibt, wenn der eine oder andere Tipp nicht korrekt sein sollte und du dir ein saftiges Bußgeld einhandelst...</ChosenAnswer>
|
207
|
+
<ChosenAnswererId>98cbabfe27423bbb32604382c4c71f1eaa</ChosenAnswererId>
|
208
|
+
<ChosenAnswererNick>Conny N</ChosenAnswererNick>
|
209
|
+
<ChosenAnswerTimestamp>1245591911</ChosenAnswerTimestamp>
|
210
|
+
<ChosenAnswerAwardTimestamp>1246307055</ChosenAnswerAwardTimestamp>
|
211
|
+
</Question>
|
212
|
+
<Question id=20090310111213AAs0Rtp" type="Answered>
|
213
|
+
<Subject>Dieser Vera Test in Mathe in Rheinlandpfalz ist der Wichtig?</Subject>
|
214
|
+
<Content>Dieser Vera Test in Mathe in Rheinlandpfalz ist der Wichtig
|
215
|
+
</Content>
|
216
|
+
<Date>2009-03-10 11:12:13</Date>
|
217
|
+
<Timestamp>1236708733</Timestamp>
|
218
|
+
<Link>http://de.answers.yahoo.com/question/?qid=20090310111213AAs0Rtp</Link>
|
219
|
+
<Category id="396547121">Prüfungen & Tests</Category>
|
220
|
+
<UserId>iTqmmCfgaa</UserId>
|
221
|
+
<UserNick>alexanderpeskov</UserNick>
|
222
|
+
<UserPhotoURL>http://l.yimg.com/a/i/identity/nopic_48.gif</UserPhotoURL>
|
223
|
+
<NumAnswers>3</NumAnswers>
|
224
|
+
<NumComments>0</NumComments>
|
225
|
+
<ChosenAnswer>Also ich komme aus NRW. Man hat uns das so erklärt wenn man zwischen zwei Noten steht wird dann der Vera Test mitgezählt .
|
226
|
+
Erste Arbeit schreibst du zum Beispiel eine 3 und die zweite eine 4. Du stehst dann wahrscheinlich zwischen 3 und 4.
|
227
|
+
Aber wenn du im Vera Test eine 3 hast. Bekommst du die 3. Im Vera Test gibt es nur die Bewertung 1,2,3,4. 4 ist das Beste und 1 das schlechteste. Wenn du Ende des Schuljahres nicht zwischen zwei Noten stehst ,kannst du die so schlecht schreiben wie du willst, ich würde es aber nicht drauf ankommen lassen.
|
228
|
+
Hier ist noch ein guter Link mit guten Übungen!
|
229
|
+
Lg Jasmin</ChosenAnswer>
|
230
|
+
<ChosenAnswererId>txY2KnKvaa</ChosenAnswererId>
|
231
|
+
<ChosenAnswererNick>Minnie.</ChosenAnswererNick>
|
232
|
+
<ChosenAnswerTimestamp>1236709511</ChosenAnswerTimestamp>
|
233
|
+
<ChosenAnswerAwardTimestamp>1237228410</ChosenAnswerAwardTimestamp>
|
234
|
+
</Question>
|
235
|
+
<ResultSet>
|
236
|
+
<-- ws15.ydn.ac4.yahoo.com uncompressed/chunked Thu Jan 27 06:08:59 PST 2011 -->
|