Guest User

Untitled

a guest
Aug 5th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Erlang 1.64 KB | None | 0 0
  1. glxml([])->[];
  2. glxml([Item | NL])->
  3.     {Id,Guid,Version,Name,GameName, Host} = Item,
  4.     Attrs = [{"id",Id},{"guid",Guid},{"version",Version},{"name",Name},{"gamename",GameName},{"host",Host}],
  5.     FPart = {xmlelement,"game",Attrs,[]},
  6.     glxml(NL,[FPart]).
  7.    
  8. glxml([Item | NL],NewList)->
  9.     {Id,Guid,Version,Name,GameName, Host} = Item,
  10.     Attrs = [{"id",Id},{"guid",Guid},{"version",Version},{"name",Name},{"gamename",GameName},{"host",Host}],
  11.     FPart = {xmlelement,"game",Attrs,[]},
  12.     glxml(NL,NewList ++ [FPart]);
  13. glxml([],NewList)->
  14.     NewList.
  15.  
  16. get_game_list() ->
  17.     clear_dead_games(),
  18.     F = fun() ->
  19.         Created = #game{status=created,id='$1',guid='$2',version='$3',name='$4',gamename='$5', host='$6'},
  20.         mnesia:select(game,[{Created,[],[{{'$1','$2','$3','$4','$5','$6'}}]}])
  21.     end,
  22.     {atomic,CreatedList} = mnesia:transaction(F),
  23.     EndList = glxml(CreatedList),
  24.     ?INFO_MSG("~p~n", [EndList]),
  25.     EndList.
  26.    
  27. clear_dead_games() ->
  28.     GF = fun() ->
  29.         GSel = #game{id = '$1', _ = '_'},
  30.         mnesia:select(game, [{GSel, [], ['$1']}])
  31.     end,
  32.     {atomic,GameList} = mnesia:transaction(GF),
  33.     ?INFO_MSG("Games ~p~n",[GameList]),
  34.     lists:foreach(
  35.         fun(X)->
  36.             case room_online(X) of
  37.                 false ->
  38.                     delete_game(X);
  39.                 _ ->
  40.                     false
  41.             end
  42.         end, GameList).
  43.    
  44. room_online(Room) ->
  45.     ?INFO_MSG("A~n",[]),
  46.     TheResult = mnesia:dirty_read({muc_online_room,Room}),
  47.     ?INFO_MSG("B~n",[]),
  48.     ?INFO_MSG("Looking For Room ~p~nResult: ~p",[Room,TheResult]),
  49.     case TheResult of
  50.     [] ->
  51.         false;
  52.     _ ->
  53.         true
  54.     end.
  55.  
  56. delete_game(Game) ->
  57.     ?INFO_MSG("Deleting game ~p~n",[Game]),
  58.     Result = mnesia:dirty_delete({game,Game}),
  59.     ?INFO_MSG("Delete Game Result ~p~n",[Result]).
Add Comment
Please, Sign In to add comment