<s> import logging <EOL> from common import api <EOL> from common import exception <EOL> from common import util <EOL> from common . models import Actor , Relation , ChannelTag <EOL> def init_tags ( ) : <EOL> tag_ref = ChannelTag ( term = '<STR_LIT>' , taxonomy = '<STR_LIT>' , path = '<STR_LIT>' ) <EOL> key_global = tag_ref . put ( ) <EOL> regions = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> regions_keys = build_tags ( regions , '<STR_LIT>' , '<STR_LIT>' ) <EOL> """<STR_LIT>""" <EOL> util . set_metadata ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> util . set_metadata ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> return regions <EOL> def build_tags ( tags , taxonomy , path ) : <EOL> keys = [ ] <EOL> for tag in tags : <EOL> logging . info ( '<STR_LIT>' % ( tag ) ) <EOL> tag_ref = ChannelTag ( term = tag , taxonomy = taxonomy , path = path ) <EOL> key = tag_ref . put ( ) <EOL> if ( path != key . name ( ) ) : <EOL> rel_ref = Relation ( owner = path , relation = '<STR_LIT>' , target = key . name ( ) ) <EOL> rel_ref = rel_ref . put ( ) <EOL> logging . info ( "<STR_LIT>" % ( path , key . name ( ) ) ) <EOL> keys . append ( key ) <EOL> logging . info ( "<STR_LIT>" % key . name ( ) ) <EOL> return keys <EOL> def build_channels ( api_user , nick , channels , path , taxonomy , country = False ) : <EOL> res = [ ] <EOL> tags = build_tags ( channels , taxonomy , path ) <EOL> for channel in channels : <EOL> tags = [ path , path + '<STR_LIT:/>' + channel ] <EOL> if ( country ) : <EOL> rel_ref = Relation ( owner = '<STR_LIT>' , relation = '<STR_LIT>' , target = path + '<STR_LIT:/>' + channel ) <EOL> rel_ref = rel_ref . put ( ) <EOL> tags . append ( '<STR_LIT>' ) <EOL> description = '<STR_LIT>' % channel <EOL> try : <EOL> channel_ref = api . channel_create ( api_user , nick = nick , channel = channel . title ( ) . replace ( '<STR_LIT:U+0020>' , '<STR_LIT>' ) , tags = tags , description = description ) <EOL> except exception . ApiException : <EOL> logging . info ( '<STR_LIT>' ) <EOL> nick = api . clean . channel ( channel . title ( ) . replace ( '<STR_LIT:U+0020>' , '<STR_LIT>' ) ) <EOL> query = Actor . gql ( '<STR_LIT>' , nick ) <EOL> channel_ref = query . get ( ) <EOL> if channel_ref : <EOL> if not path in channel_ref . tags : <EOL> channel_ref . tags . append ( path ) <EOL> channel_key = channel_ref . put ( ) <EOL> res . append ( channel_ref ) <EOL> logging . info ( '<STR_LIT>' ) <EOL> return res <EOL> def channel_create_with_tags ( page ) : <EOL> logging . info ( '<STR_LIT>' ) <EOL> logging . info ( '<STR_LIT>' % page ) <EOL> items = { } <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT:1>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT:2>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT:3>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT:4>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT:5>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , True ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> path = '<STR_LIT>' <EOL> countries = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> items [ '<STR_LIT>' ] = [ path , countries , False ] <EOL> if page < <NUM_LIT> : <EOL> path = items . get ( str ( page ) ) [ <NUM_LIT:0> ] <EOL> countries = items . get ( str ( page ) ) [ <NUM_LIT:1> ] <EOL> is_country = items . get ( str ( page ) ) [ <NUM_LIT:2> ] <EOL> build_channels ( api . ROOT , api . ROOT . nick , countries , path , '<STR_LIT>' , is_country ) <EOL> else : <EOL> init_tags ( ) <EOL> countries = "<STR_LIT>" <EOL> return countries <EOL> def process ( page , limit , offset ) : <EOL> logging . info ( '<STR_LIT>' ) <EOL> logging . info ( '<STR_LIT>' % ( page , limit , offset ) ) <EOL> redirect = page < <NUM_LIT> <EOL> return redirect , channel_create_with_tags ( page ) </s>
