我试图从最大的俄语歌词网站http://amalgama-lab.com解析歌词,并将歌词(翻译和原创)保存到我的Vkontakte帐户的音频列表中(遗憾的是,amalgama没有任何API)
import urllib
from BeautifulSoup import BeautifulSoup
import vkontakte
vk = vkontakte.API(token=<SECRET_TOKEN>)
audios = vk.getAudios(count='2')
#{u'artist': u'The Beatles', u'url': u'http://cs4519.vkontakte.ru/u4665445/audio/4241af71a888.mp3', u'title': u'Yesterday', u'lyrics_id': u'2365986', u'duration': 130, u'aid': 166194990, u'owner_id': 173505924}
url = 'http://amalgama.mobi/songs/'
for i in audios:
print i['artist']
if i['artist'].startswith('The '):
url += i['artist'][4:5] + '/' + i['artist'][4:].replace(' ', '_') + '/' +i['title'].replace(' ', '_') + '.html'
else:
url += i['artist'][:1] + '/' + i['artist'].replace(' ', '_') + '/' +i['title'].replace(' ', '_') + '.html'
url = url.lower() …Run Code Online (Sandbox Code Playgroud) 我试过Angular,我喜欢它.我已经开始将他整合到我的rails-app中,但后来出现了一些关于架构的疑问
路线.我想在没有刷新页面的情况下导航,在使用Wiselinks gem之前,它很容易和很酷 - 只需安装,修补link_to帮助并完成.但是角有他自己的路由器和ui-router(很酷).我希望我的应用程序在浏览器上运行,如Opera Mini和IE,但ui-router没有像wiselinks那样的回调.我不会创建移动网站版本 - 设计是自适应的.这意味着,我会使用rails路由,但我想要AJAX页面刷新它可以(渐进式的enchansement,是的).我该怎么办?
在许多地方,内容由Angular呈现,即帖子列表(通过ajaxing json).台式机上的快速和酷,但旧浏览器!我需要在服务器上为它们渲染它.或者我没有?
我被卡住了.谢谢.
我有一个非常基本的助手,它依赖于current_userSorcery在控制器和助手中提供的变量
def current_user_link
user_link current_user
end
def user_link(user, html_options = {}, &block)
link_to user.to_s, user, html_options, &block
end
Run Code Online (Sandbox Code Playgroud)
如何测试该助手?
describe UsersHelper do
describe '#current_user_link' do
it 'should return a link to the current user' do
expected_link = link_to current_user.name, current_user
???
expect(current_user_link).to eq expected_link
end
end
Run Code Online (Sandbox Code Playgroud)
我需要以current_user某种方式存根吗?甚至值得测试吗?
Article#to_archive是别名Article#archived!:
class Article
alias to_archive archived!
end
Run Code Online (Sandbox Code Playgroud)
我需要确保这一点,所以我写了这个测试:
describe '#to_archive' do
it 'is an alias to #archived!' do
expect(subject.method(:to_archive)).to eq(subject.method(:archived!))
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误
Failure/Error: expect(subject.method(:to_archive)).to eq(subject.method(:archived!))
expected: #<Method: Article(#<Module:0x00000005a7c240>)#archived!>
got: #<Method: Article(#<Module:0x00000005a7c240>)#to_archive(archived!)>
Run Code Online (Sandbox Code Playgroud)
它曾用于红宝石<2.3 IIRC.我试过了alias_method,但没有用.
我想用Haskell写下数学表达式.例如:
foo = (3 * 'x' + 2 * 'y' -- => 3x+2y
Run Code Online (Sandbox Code Playgroud)
有没有办法从下面改写实施这样的方式,Add并Mul可以通过运营商进行更换+,并*分别?
data Expr = Const Integer
| Var Char
| Add Expr Expr
| Mul Expr Expr
deriving (Show)
...
foo = Add (Mul (Const 3) (Var 'x')) (Mul (Const 3) (Var 'y'))
Run Code Online (Sandbox Code Playgroud)
丑陋地狱.使用TypeOperators也不会起作用,它需要运算符在其前面:.
infixl 4 :+:
infixl 5 :*:, :/:
infixr 6 :^:
data Expr = Const Integer
| Var Char
| Expr :+: Expr
| …Run Code Online (Sandbox Code Playgroud)