mirror of
https://github.com/zoffline/zwift-offline.git
synced 2026-08-02 08:57:57 -07:00
zca events++
This commit is contained in:
+37
-14
@@ -899,8 +899,9 @@ def api_clubs_club_cancreate():
|
||||
|
||||
@app.route('/api/event-feed', methods=['GET']) #from=1646723199600&limit=25&sport=CYCLING
|
||||
def api_eventfeed():
|
||||
eventCount = int(request.args.get('limit'))
|
||||
events = get_events(eventCount)
|
||||
eventCount = int(request.args.get('limit', 50))
|
||||
sport = request.args.get('sport', 'CYCLING')
|
||||
events = get_events(eventCount, sport)
|
||||
json_events = convert_events_to_json(events)
|
||||
json_data = []
|
||||
for e in json_events:
|
||||
@@ -1040,7 +1041,7 @@ def api_per_session_info():
|
||||
info.relay_url = "https://us-or-rly101.zwift.com/relay"
|
||||
return info.SerializeToString(), 200
|
||||
|
||||
def get_events(limit):
|
||||
def get_events(limit, sport):
|
||||
events_list = [('Bologna TT', 2843604888, 10),
|
||||
('Crit City CW', 947394567, 12),
|
||||
('Crit City CCW', 2875658892, 12),
|
||||
@@ -1050,6 +1051,11 @@ def get_events(limit):
|
||||
cnt = 0
|
||||
events = events_pb2.Events()
|
||||
const_delay_ms = 60000
|
||||
if sport == 'CYCLING':
|
||||
sport = profile_pb2.Sport.CYCLING
|
||||
else:
|
||||
sport = profile_pb2.Sport.RUNNING
|
||||
event_id = 1001 #to get sport back from id
|
||||
for item in events_list:
|
||||
event = events.events.add()
|
||||
event.server_realm = udp_node_msgs_pb2.ZofflineConstants.RealmID
|
||||
@@ -1057,7 +1063,7 @@ def get_events(limit):
|
||||
event.name = item[0]
|
||||
event.route_id = item[1] #otherwise new home screen hangs trying to find route in all (even non-existent) courses
|
||||
event.course_id = item[2]
|
||||
event.sport = profile_pb2.Sport.CYCLING
|
||||
event.sport = sport
|
||||
event.lateJoinInMinutes = 30
|
||||
event.eventStart = int(get_time()) * 1000 + const_delay_ms
|
||||
event.visible = True
|
||||
@@ -1073,7 +1079,8 @@ def get_events(limit):
|
||||
#event.e_f27 = 27; //<=4, ENUM?
|
||||
#event.tags = 31; // semi-colon delimited tags
|
||||
event.e_wtrl = False # WTRL (World Tactical Racing Leagues)
|
||||
cats = ('?', 'A', 'B', 'C', 'D', 'E', 'F')
|
||||
cats = ('A', 'B', 'C', 'D', 'E', 'F')
|
||||
paceValues = ((4,15), (3,4), (2,3), (1,2), (0.1,1))
|
||||
for cat in range(1,5):
|
||||
event_cat = event.category.add()
|
||||
event_cat.id = event_id + cat
|
||||
@@ -1091,12 +1098,12 @@ def get_events(limit):
|
||||
event_cat.startLocation = cat
|
||||
event_cat.label = cat
|
||||
event_cat.lateJoinInMinutes = 30
|
||||
event_cat.name = "Cat.%s" % cats[event_cat.label]
|
||||
event_cat.description = "#zwiftofficial"
|
||||
event_cat.name = "Cat.%s" % cats[cat - 1]
|
||||
event_cat.description = "#zwiftoffline"
|
||||
event_cat.course_id = event.course_id
|
||||
event_cat.paceType = 1 #1 almost everywhere, 2 sometimes
|
||||
event_cat.fromPaceValue = 1.0
|
||||
event_cat.toPaceValue = 5.0
|
||||
event_cat.fromPaceValue = paceValues[cat - 1][0]
|
||||
event_cat.toPaceValue = paceValues[cat - 1][1]
|
||||
#event_cat.scode = 7; // ex: "PT3600S"
|
||||
#event_cat.rules_id = 8; // 320 and others
|
||||
event_cat.distanceInMeters = 0
|
||||
@@ -1113,12 +1120,21 @@ def get_events(limit):
|
||||
|
||||
@app.route('/api/events/<int:event_id>', methods=['GET'])
|
||||
def api_events_id(event_id):
|
||||
if event_id % 1 == 0:
|
||||
sport = 'CYCLING'
|
||||
else:
|
||||
sport = 'RUNNING'
|
||||
events = get_events(50, sport)
|
||||
for e in events.events:
|
||||
if e.id == event_id:
|
||||
return jsonify(convert_event_to_json(e))
|
||||
return '', 200
|
||||
|
||||
@app.route('/api/events/search', methods=['POST'])
|
||||
def api_events_search():
|
||||
limit = int(request.args.get('limit'))
|
||||
events = get_events(limit)
|
||||
sport = request.args.get('sport', 'CYCLING')
|
||||
events = get_events(limit, sport)
|
||||
if request.headers['Accept'] == 'application/json':
|
||||
return jsonify(convert_events_to_json(events))
|
||||
else:
|
||||
@@ -1136,8 +1152,15 @@ def api_events_subgroups_register_id(event_id):
|
||||
|
||||
@app.route('/api/events/subgroups/entrants/<int:event_id>', methods=['GET'])
|
||||
def api_events_subgroups_entrants_id(event_id):
|
||||
return '', 200
|
||||
return '[]', 200
|
||||
|
||||
@app.route('/api/events/subgroups/invited_ride_sweepers/<int:event_id>', methods=['GET'])
|
||||
def api_events_subgroups_invited_ride_sweepers_id(event_id):
|
||||
return '[]', 200
|
||||
|
||||
@app.route('/api/events/subgroups/invited_ride_leaders/<int:event_id>', methods=['GET'])
|
||||
def api_events_subgroups_invited_ride_leaders_id(event_id):
|
||||
return '[]', 200
|
||||
|
||||
@app.route('/relay/race/event_starting_line/<int:event_id>', methods=['POST'])
|
||||
def relay_race_event_starting_line_id(event_id):
|
||||
@@ -2165,7 +2188,7 @@ def iterableToJson(it):
|
||||
ret.append(i)
|
||||
return ret
|
||||
|
||||
def eventProtobufToJson(event):
|
||||
def convert_event_to_json(event):
|
||||
esgs = []
|
||||
for event_cat in event.category:
|
||||
esgs.append({"id":event_cat.id,"name":event_cat.name,"description":event_cat.description,"label":event_cat.label, \
|
||||
@@ -2193,7 +2216,7 @@ def eventProtobufToJson(event):
|
||||
def convert_events_to_json(events):
|
||||
json_events = []
|
||||
for e in events.events:
|
||||
json_event = eventProtobufToJson(e)
|
||||
json_event = convert_event_to_json(e)
|
||||
json_events.append(json_event)
|
||||
return json_events
|
||||
|
||||
@@ -2209,7 +2232,7 @@ def relay_worlds_id_aggregate_mobile(server_realm):
|
||||
activityCount = int(request.args.get('activityCount'))
|
||||
json_activities = select_activities_json(current_user.player_id, activityCount)
|
||||
eventCount = int(request.args.get('eventCount'))
|
||||
events = get_events(eventCount)
|
||||
events = get_events(eventCount, 'CYCLING') #runners, sorry!
|
||||
json_events = convert_events_to_json(events)
|
||||
return jsonify({"events":json_events,"goals":json_goals,"activities":json_activities,"pendingPrivateEventFeed":[],"acceptedPrivateEventFeed":[],"hasFolloweesToRideOn":False, \
|
||||
"worldName":"MAKURIISLANDS","playerCount":0,"followingPlayerCount":0,"followingPlayers":[]})
|
||||
|
||||
Reference in New Issue
Block a user