from datetime_periods import period
from dateutil.parser import parse
import math
import datetime
current_date = datetime.datetime.now()
def get_num_quarter(ref): # Возвращает номер квартала
return math.ceil(ref.month/3.)
def start_end_quarter(ref): # Возвращает первый и последний день квартала
return period(ref, 'quarter')
def previous_quarter(ref): # Возвращает 1-ый день предыдущего квартала
quarter = (ref.month - 1) // 3
prev_quarter = (quarter - 1) % 4
return datetime.datetime(ref.year if quarter > 0
else ref.year-1, prev_quarter*3+1, 1)
dates = "2015-07-10 2015-03-07 2015-06-25 2015-04-21 2014-07-30".split(" ")
for d in dates:
date_obj = parse(d)
# Проверяем входит ли дата в текущий квартал
if (current_date.year == date_obj.year
and get_num_quarter(date_obj) == get_num_quarter(current_date)):
print(d + " - Входит. Т.к. дата относится к текущему кварталу")
continue
# Проверяем условие: предыдущий кв. + 25 дней
prev_date = previous_quarter(current_date)
start = start_end_quarter(prev_date)[0]
end = start_end_quarter(prev_date)[1] + datetime.timedelta(days=25)
if start < date_obj and current_date < end:
print(d + " - Входит. Т.к. предыдущий кв. + 25 дней еще не закончились")
else:
print(d + " - Не входит в диапазон")
2015-07-10 - Входит. Т.к. дата относится к текущему кварталу
2015-03-07 - Не входит в диапазон
2015-06-25 - Входит. Т.к. предыдущий кв. + 25 дней еще не закончились
2015-04-21 - Входит. Т.к. предыдущий кв. + 25 дней еще не закончились
2014-07-30 - Не входит в диапазон
from flask import Flask, request
@app.route('/ip/')
def get_user_ip():
ip = request.headers.get('X-Real-IP')
return ip
cat 1.txt
100
2323
2390238
32322323
9002
cat 2.txt
34
4343
434
2390238
32322323
9002
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use File::Slurp;
use Array::Utils qw(:all);
my @arr1 = read_file( '1.txt', chomp => 1 );
my @arr2 = read_file( '2.txt', chomp => 1 );
# Получилось 2 массива.
# Теперь сравниваем их c помощью use Array::Utils qw(:all);
# И вычисляем разницу
# Получаем элементы из массива @аrr1, которые не входят в массив @arr2
my @minus = array_minus( @arr1, @arr2 );
for my $i (@minus){
print "$i \n";
}
100
2323
@minus
записать в файл да и все. #===============================================================================
#
# FILE: followme.pm
#
# DESCRIPTION: Модуль, который выдает текущий транк на исход, а так же выдает
# номер мобильного в follow me
#
# FILES: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: YOUR NAME (),
# ORGANIZATION:
# VERSION: 1.0
# CREATED: 04/22/2015 11:58:36 AM
# REVISION: ---
#===============================================================================
use strict;
use warnings;
use DBI;
package Followme;
our $dbh_ast =
DBI->connect( 'dbi:mysql:dbname=asterisk;host=localhost', 'dbuser', 'pass' ) or die;
sub new {
my ( $class, %self ) = @_;
bless \%self, $class;
return \%self;
}
sub get_followme {
my $self = shift;
my $ext = $self->{ext};
my $sql = 'SELECT `grplist` FROM `findmefollow` WHERE `grpnum`
LIKE ? AND `grplist` LIKE ?';
my ($followme_phone) = $dbh_ast->selectrow_array( $sql, undef, $ext, $ext . '-%' );
if ($followme_phone) {
$self->{followme_phone} = substr $followme_phone, 5, -1;
return $self->{followme_phone};
}
else {
return undef;
}
}
sub get_current_trunk {
my $self = shift;
my $sql = 'SELECT t.name, t.dialoutprefix
FROM `outbound_route_trunks` o, `trunks` t
WHERE t.disabled LIKE "off"
AND o.trunk_id = t.trunkid
ORDER BY o.seq ASC
LIMIT 0 , 1';
my ( $trunk_name, $dialoutprefix ) = $dbh_ast->selectrow_array($sql);
$self->{dialoutprefix} = $dialoutprefix;
return $trunk_name.'/'.$dialoutprefix.$self->{followme_phone};
}
1;
use Followme;
my $f = Followme->new( ext => "100" );
if ( $f->get_followme() ) {
my $followme = $f->get_current_trunk();
$AGI->exec( 'Dial', 'SIP/' . $followme . ',40,m(default)tw' );
}
use strict;
use warnings;
use utf8;
use feature 'say';
use LWP::Simple;
use HTTP::Request::Common qw(GET);
use open ':std', ':encoding(UTF-8)';
my $ua = LWP::UserAgent->new;
my @add = qw(http://rbc.ru http://habrahabr.ru http://some_dead_site_.net http://yahoo.com);
my %http = map {$_ => 1} @add;
while (1) {
for my $address (keys %http) {
my $req = GET $address;
my $res = $ua->request($req);
if ( $res->{'_msg'} eq 'OK' ) {
say "С сайтом $address - все ок";
}
else {
say "Сайт $address - лежит. Удаляем из списка";
delete $http{$address};
}
}
say "######Спим 20 секунд######";
sleep 20;
}
С сайтом http://yahoo.com - все ок
Сайт http://some_dead_site_.net - лежит. Удаляем из списка
С сайтом http://habrahabr.ru - все ок
С сайтом http://rbc.ru - все ок
######Спим 20 секунд######
С сайтом http://yahoo.com - все ок
С сайтом http://habrahabr.ru - все ок
С сайтом http://rbc.ru - все ок
######Спим 20 секунд######
COOKIE_SECURE = 'Secure'
COOKIE_DURATION = timedelta(days=365)
my %child;
my $n = $dbh->prepare('SELECT * FROM `table` where key =? ');
$n->execute($value);
my $all = $n->fetchall_arrayref( {} );
foreach my $item (@$all) {
print $item->{'arid'};
}
import json
listok = {'привет': 'медвед'}
data = json.dumps(listok)
print('Json: %s' % data)
new_obj = json.loads(data)
print('Python obj: %s' % new_obj)
Json: {"\u043f\u0440\u0438\u0432\u0435\u0442": "\u043c\u0435\u0434\u0432\u0435\u0434"}
Python obj: {'привет': 'медвед'}
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
listok = {'привет': 'медвед'}
data = json.dumps(listok)
print 'Json: %s' % data
new_obj = json.loads(data)
print('Python obj: %s' % new_obj)
for key in new_obj:
print key, new_obj[key]
Json: {"\u043f\u0440\u0438\u0432\u0435\u0442": "\u043c\u0435\u0434\u0432\u0435\u0434"}
Python obj: {u'\u043f\u0440\u0438\u0432\u0435\u0442': u'\u043c\u0435\u0434\u0432\u0435\u0434'}
привет медвед
def __init__(self, text=None, writer=None, key=None):
self.text = text
self.writer = current_user.id
self.key = key
@app.route('/post/<post_id>')
@app.route('/post/<int:post_id>')
@app.before_request
def before_request():
sitename = db = ""
if request.headers['Host'] in 'www.example1.com':
sitename = 'example1.com'
db = 'example1_com'
elif request.headers['Host'] in 'www.example2.com':
sitename = 'example2.com'
db = 'example2_com'
else:
sitename = 'test.com'
db = 'test_com'
# И т.д.
app.jinja_env.globals['sitename'] = sitename
($fsname, $fstype) = m/\S+ (\S+) (\S+)/;