Skip to content

Instantly share code, notes, and snippets.

View yanmhlv's full-sized avatar

Ian Mikhailov yanmhlv

View GitHub Profile
@yanmhlv
yanmhlv / gist:6413007
Created September 2, 2013 13:44
Session imitation tornado + mongo
#!/usr/bin/env python
# coding: utf-8
import mongoengine as me
from uuid import uuid4
from datetime import datetime
class Session(me.Document):
meta = {'collection': 'sessions'}
@yanmhlv
yanmhlv / gridfs_output.py
Last active December 22, 2015 05:19
Отдача файлов(изображений) из mongodb через tornado.
# coding: utf-8
from tornado.web import *
from tornado.ioloop import IOLoop
import tornado.template
import mongoengine as me
class Image(me.Document):
image = me.FileField()
def register_thread(self, thread, thread_name, started_connect, finished_connect, error_connect = None):
"Метод регистрации стандартных потоков."
self.threads[thread_name] = thread
self.threads[thread_name].started.connect(started_connect)
self.threads[thread_name].finished.connect(finished_connect)
if error_connect:
self.threads[thread_name].error.connect(error_connect)
def terminate_thread(self, thread_name = None):
"Закрытие потока. Если имя потока отсутствует - закрываются все потоки"
@yanmhlv
yanmhlv / gist:6718991
Last active December 24, 2015 00:49
вытаскивание новостей с сайта aionplanet.ws Возвращает генератор в генераторе возвращается None, в случае отсутствия блока с новостью, либо кортеж (даты новости, текста "Обновлены серверы Aion Planet|Айон Планет", детали обновления и названия обновления)
# coding: utf-8
from lxml.html import parse
import re
def get_news(url = None):
if url:
doc = parse(url)
for news in doc.xpath('//*[@id="content"]/div')[0]:
if news.attrib.get('class') == 'news_block':
@yanmhlv
yanmhlv / 1.rb
Created December 5, 2013 20:39
ruby and mongo
require 'Mongo'
include mongo
conn = MongoClient.new('192.168.1.103')
db = conn['test_database']
coll = db['test_collection']
coll.find.each do |x|
puts x['_id'].generation_time
module A
end
class B
end
def f
end
def f()
@yanmhlv
yanmhlv / gist:7821554
Last active December 30, 2015 11:19
example for motor and tornado
import motor
import tornado.gen as gen
@gen.coroutine
def foo1():
conn = motor.MotorClient().open_sync()
db = conn['test']
result = yield gen.Task(db.accounts.find().limit(10).to_list)
return result
@yanmhlv
yanmhlv / main.cpp
Last active January 3, 2016 03:19
g++ -c *.cpp && g++ *.o && ./a.out
#include "point.h"
#include <iostream>
using namespace std;
int main(){
Point2D p1 = Point2D(10, 20);
cout << "Координаты точки p1: ";
p1.print_coordinates();
@yanmhlv
yanmhlv / fileinfo.rb
Last active August 29, 2015 13:56
Получение списка хешей, состоящего из пути, sha1-хеша и информации о файле.
require 'digest'
def get_hash(string=nil, file=nil, method='md5')
raise RuntimeError if string.nil? && file.nil?
method = method.upcase
method = Digest.class_eval(method)
if string
hash = method.hexdigest(string)
@yanmhlv
yanmhlv / functional.rb
Created March 9, 2014 12:27
functional module
module Functional
def apply(enum)
enum.map &self
end
alias | apply
def reduce(enume)
enum.inject &self
end
alias <= reduce