def save_vistrail(self, locator_class, vistrailView=None, force_choose_locator=False): """ force_choose_locator=True triggers 'save as' behavior """ global bobo if not vistrailView: vistrailView = self.currentWidget() vistrailView.flush_changes() if vistrailView: gui_get = locator_class.save_from_gui # get a locator to write to if force_choose_locator: locator = gui_get(self, Vistrail.vtType, vistrailView.controller.locator) else: locator = (vistrailView.controller.locator or gui_get(self, Vistrail.vtType, vistrailView.controller.locator)) if locator == untitled_locator(): locator = gui_get(self, Vistrail.vtType, vistrailView.controller.locator) # if couldn't get one, ignore the request if not locator: return False # update collection try: vistrailView.controller.write_vistrail(locator) except Exception, e: debug.critical('An error has occurred', str(e)) raise return False try: thumb_cache = ThumbnailCache.getInstance() vistrailView.controller.vistrail.thumbnails = \ vistrailView.controller.find_thumbnails( tags_only=thumb_cache.conf.tagsOnly) vistrailView.controller.vistrail.abstractions = \ vistrailView.controller.find_abstractions( vistrailView.controller.vistrail, True) collection = Collection.getInstance() url = locator.to_url() # create index if not exist entity = collection.fromUrl(url) if entity: # find parent vistrail while entity.parent: entity = entity.parent else: entity = collection.updateVistrail(url, vistrailView.controller.vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: debug.critical('Failed to index vistrail', str(e))
def load_formation_staffs(self): # NOTE: 这段代码其实是从 Club.force_load_staffs 抄来的 from core.formation import Formation from core.unit import UnitManager from core.talent import TalentManager from core.collection import Collection from core.party import Party from core.inspire import Inspire self.formation_staffs = [] """:type: list[core.staff.Staff]""" sm = StaffManger(self.server_id, self.char_id) fm = Formation(self.server_id, self.char_id) um = UnitManager(self.server_id, self.char_id) ins = Inspire(self.server_id, self.char_id) staffs = sm.get_staffs_data() in_formation_staffs = self.in_formation_staffs() for k, v in in_formation_staffs.iteritems(): obj = Staff(self.server_id, self.char_id, k, staffs[k]) self.formation_staffs.append(obj) obj.policy = in_formation_staffs[k]['policy'] obj.formation_position = in_formation_staffs[k]['position'] unit_id = in_formation_staffs[k]['unit_id'] if unit_id: obj.set_unit(um.get_unit_object(unit_id)) club = Club(self.server_id, self.char_id, load_staffs=False) club.formation_staffs = self.formation_staffs working_staff_oids = self.working_staff_oids() for obj in self.formation_staffs: obj.check_qianban(working_staff_oids) obj.add_self_talent_effect(club) talent_effects_1 = TalentManager(self.server_id, self.char_id).get_talent_effects() talent_effects_2 = Collection(self.server_id, self.char_id).get_talent_effects() talent_effects_3 = fm.get_talent_effects() talent_effects_4 = Party(self.server_id, self.char_id).get_talent_effects() club.add_talent_effects(talent_effects_1) club.add_talent_effects(talent_effects_2) club.add_talent_effects(talent_effects_3) club.add_talent_effects(talent_effects_4) config_inspire_level_addition, config_inspire_step_addition = ins.get_addition_config( ) for obj in self.formation_staffs: obj.config_inspire_level_addition = config_inspire_level_addition obj.config_inspire_step_addition = config_inspire_step_addition obj.calculate()
def open_vistrail(self, locator, version=None, is_abstraction=False): """open_vistrail(locator: Locator, version = None: int or str, is_abstraction: bool) opens a new vistrail from the given locator, selecting the given version. """ self.close_first_vistrail_if_necessary() if self.single_document_mode and self.currentView(): self.closeVistrail() view = self.ensureVistrail(locator) if view: if version is not None: if type(version) == type(""): try: version = view.vistrail.get_version_number(version) except: version = None if version is not None: view.setup_view(version) return view try: (vistrail, abstraction_files, thumbnail_files, _) = \ load_vistrail(locator, is_abstraction) result = self.set_vistrail_view(vistrail, locator, abstraction_files, thumbnail_files, version) # update collection try: vistrail.thumbnails = thumbnail_files vistrail.abstractions = abstraction_files collection = Collection.getInstance() url = locator.to_url() # create index if not exist entity = collection.fromUrl(url) if entity: # find parent vistrail while entity.parent: entity = entity.parent else: entity = collection.updateVistrail(url, vistrail) # add to relevant workspace categories collection.add_to_workspace(entity) collection.commit() except Exception, e: import traceback debug.critical('Failed to index vistrail', str(e) + traceback.format_exc()) return result
def do_search(only_current_vistrail=False, only_current_workflow=False): entities_to_check = {} open_col = Collection.getInstance() for entity in open_col.get_current_entities(): if entity.type_id == VistrailEntity.type_id and \ entity.is_open: controller = entity._window.controller if only_current_vistrail and \ controller.vistrail != vt_controller.vistrail: continue if only_current_workflow: versions_to_check = controller.current_version else: graph = controller._current_terse_graph versions_to_check = set(graph.vertices.iterkeys()) entities_to_check[entity] = versions_to_check self.set_search(MultipleSearch(search_str, search_pipeline, entities_to_check)) self.search.run() return self.search.getResultEntities()
def game_start_handler(server_id, char_id, **kwargs): MessagePipe(char_id).clean() msg = UTCNotify() msg.timestamp = arrow.utcnow().timestamp MessagePipe(char_id).put(msg=msg) msg = SocketServerNotify() ss = random.choice(settings.SOCKET_SERVERS) msg.ip = ss['host'] msg.port = ss['tcp'] MessagePipe(char_id).put(msg=msg) _Resource.send_notify(server_id, char_id) UnitManager(server_id, char_id).send_notify() Bag(server_id, char_id).send_notify() StaffManger(server_id, char_id).send_notify() StaffRecruit(server_id, char_id).send_notify() f = Formation(server_id, char_id) f.send_formation_notify() f.send_slot_notify() club = Club(server_id, char_id) club.set_login() club.send_notify() msg = CreateDaysNotify() msg.days = days_passed(club.create_at) msg.create_at = club.create_at MessagePipe(char_id).put(msg=msg) chall = Challenge(server_id, char_id) chall.send_chapter_notify() chall.send_challenge_notify() FriendManager(server_id, char_id).send_notify() MailManager(server_id, char_id).send_notify() TaskMain(server_id, char_id).send_notify() TaskDaily(server_id, char_id).send_notify() Chat(server_id, char_id).send_notify() Notification(server_id, char_id).send_notify() FinanceStatistics(server_id, char_id).send_notify() TalentManager(server_id, char_id).send_notify() Dungeon(server_id, char_id).send_notify() a = Arena(server_id, char_id) a.send_notify() a.send_honor_notify() t = Tower(server_id, char_id) t.send_notify() t.send_goods_notify() Territory(server_id, char_id).send_notify() TerritoryStore(server_id, char_id).send_notify() TerritoryFriend(server_id, char_id).send_remained_times_notify() Store(server_id, char_id).send_notify() VIP(server_id, char_id).send_notify() Collection(server_id, char_id).send_notify() Energy(server_id, char_id).send_notify() w = Welfare(server_id, char_id) w.send_signin_notify() w.send_new_player_notify() w.send_level_reward_notify() w.send_energy_reward_notify() Union(server_id, char_id).send_all_notify() Purchase(server_id, char_id).send_notify() ac = ActivityNewPlayer(server_id, char_id) ac.send_notify() ac.send_daily_buy_notify() ActivityOnlineTime(server_id, char_id).send_notify() ActivityChallenge(server_id, char_id).send_notify() ActivityPurchaseDaily(server_id, char_id).send_notify() ActivityPurchaseContinues(server_id, char_id).send_notify() ActivityLevelGrowing(server_id, char_id).send_notify() p = Plunder(server_id, char_id) p.send_search_notify() p.send_result_notify() p.send_revenge_notify() p.send_station_notify() p.send_formation_notify() p.send_plunder_times_notify() p.send_plunder_daily_reward_notify() SpecialEquipmentGenerator(server_id, char_id).send_notify() Party(server_id, char_id).send_notify() ins = Inspire(server_id, char_id) ins.try_open_slots(send_notify=False) ins.send_notify() cs = Championship(server_id, char_id) cs.try_initialize(send_notify=False) cs.send_notify() WinningPlunder(server_id, char_id).send_notify() WinningArena(server_id, char_id).send_notify() WinningChampionship(server_id, char_id).send_notify() Worship(server_id, char_id).send_notify() CommonArenaWinningChat(server_id, char_id).send_notify() CommonPlunderWinningChat(server_id, char_id).send_notify() CommonChampionshipChat(server_id, char_id).send_notify() send_system_notify(server_id, char_id) BroadCast(server_id, char_id).try_cast_login_notify()
def staff_new_add_handler(server_id, char_id, staffs_info, force_load_staffs, **kwargs): oids = [o for o, _ in staffs_info] Collection(server_id, char_id).add(oids, force_load_staffs=force_load_staffs)
def ProjectileCollection(): return Collection(Projectile)
def get(id): return Collection(MenuItem).get(id)
def get(id): return Collection(Order).get(id)
def create(user): c = Collection(Order) return c.insert({ 'user': user })
def insert_item(order, item, qnt, price): c = Collection(OrderItem) c.insert({ 'order': order, 'item': item, 'qnt': qnt, 'price': price })
def get_menu(): return Collection(MenuItem).all()
def insert(form): return Collection(MenuItem).insert(form)
def create_user(form): return Collection(User).insert(form)
def EnemyCollection(positions, waypoints): col = Collection(Enemy) col.add_many(len(positions), position=positions, waypoints=waypoints) return col
def verify_user(user): return (Collection(User).get(user.id) is not None)
def force_load_staffs(self, send_notify=False): from core.staff import StaffManger, Staff from core.formation import Formation from core.unit import UnitManager from core.talent import TalentManager from core.collection import Collection from core.party import Party from core.inspire import Inspire from core.union import Union from core.bag import Bag self.formation_staffs = [] sm = StaffManger(self.server_id, self.char_id) fm = Formation(self.server_id, self.char_id) um = UnitManager(self.server_id, self.char_id) ins = Inspire(self.server_id, self.char_id) staffs = sm.get_staffs_data() in_formation_staffs = fm.in_formation_staffs() staff_objs = {} """:type: dict[str, core.staff.Staff]""" for k, v in staffs.items(): staff_objs[k] = Staff(self.server_id, self.char_id, k, v) for k, v in staff_objs.iteritems(): if k in in_formation_staffs: self.formation_staffs.append(v) v.policy = in_formation_staffs[k]['policy'] v.formation_position = in_formation_staffs[k]['position'] unit_id = in_formation_staffs[k]['unit_id'] if unit_id: v.set_unit(um.get_unit_object(unit_id)) working_staff_oids = fm.working_staff_oids() for k in in_formation_staffs: staff_objs[k].check_qianban(working_staff_oids) staff_objs[k].add_self_talent_effect(self) talent_effects_1 = TalentManager(self.server_id, self.char_id).get_talent_effects() talent_effects_2 = Collection(self.server_id, self.char_id).get_talent_effects() talent_effects_3 = fm.get_talent_effects() talent_effects_4 = Party(self.server_id, self.char_id).get_talent_effects() talent_effects_5 = Union(self.server_id, self.char_id).get_union_skill_talent_effects() self.add_talent_effects(talent_effects_1) self.add_talent_effects(talent_effects_2) self.add_talent_effects(talent_effects_3) self.add_talent_effects(talent_effects_4) self.add_talent_effects(talent_effects_5) config_inspire_level_addition, config_inspire_step_addition = ins.get_addition_config() bag = Bag(self.server_id, self.char_id) for _, v in staff_objs.iteritems(): v.config_inspire_level_addition = config_inspire_level_addition v.config_inspire_step_addition = config_inspire_step_addition v.calculate(bag=bag, um=um) v.make_cache() if send_notify: self.send_notify() in_formation_staff_ids = fm.in_formation_staffs().keys() sm.send_notify(ids=in_formation_staff_ids)