示例#1
0
def main():
    weeks, frequency, slots, sets, filename = arguments()

    Program = Workout()
    Program.generate_weeks(weeks=weeks)
    Program.generate_frequency(frequency=frequency)
    Program.generate_slots(slots=slots, sets=sets, frequency=frequency)
    Utils.clear(workbook=Program.wb)
    Utils.save(workbook=Program.wb, filename=filename)
	def get(self):
		statusCode = 201
		workoutId = self.request.get('workoutId')
		if workoutId != '':
			workout = Workout.get_by_id(int(workoutId))
			if workout:
				statusCode = 200
				self.response.write(json.dumps({'statusCode': statusCode, 'workout': workout.JSONOutput()}))
			else:
				self.response.write(json.dumps({'statusCode': statusCode}))
		else:
			statusCode = 200
			workoutName = self.request.get('workoutNames')
			workouts = []
			for workout in Workout.query():
				workouts.append(workout.JSONOutput())
			self.response.write(json.dumps({'statusCode': statusCode, 'workouts': workouts}))
示例#3
0
def retrieveWorkoutInfo(workoutUrl):
    workoutBS = BS(URLRequest.urlopen(workoutUrl), "html.parser")

    try:
        bsExercises = workoutBS.select_one(".pull-none").select_one(
            "img[src]")["src"]
    except:
        bsExercises = ""

    try:
        bsMuscles = workoutBS.select_one(".infobox-map").select_one(
            "img[src]")["src"]
    except:
        bsMuscles = ""

    try:
        bsFocus = workoutBS.select_one(".infobox-works").select_one(
            "img[src]")["src"]
    except:
        bsFocus = ""

    try:
        bsType = workoutBS.select_one(".infobox-focus").select_one(
            "img[src]")["src"]
    except:
        bsType = ""

    try:
        bsDifficulty = workoutBS.select_one(".infobox-difficulty").select_one(
            "img[src]")["src"]
    except:
        bsDifficulty = ""

    try:
        bsDescription = workoutBS.select_one(".infotext").contents
    except:
        bsDescription = ""

    try:
        bsExtraCredit = workoutBS.select_one(".infoec").contents
    except:
        bsExtraCredit = ""

    workoutName = bsExercises[bsExercises.find("ts/") +
                              3:bsExercises.find(".")]
    workoutExercises = "https://darebee.com" + bsExercises
    workoutMuscles = "https://darebee.com" + bsMuscles
    workoutFocus = bsFocus[bsFocus.find("-") + 1:bsFocus.find(".")]
    workoutType = bsType[bsType.find("-") + 1:bsType.find(".")]
    workoutDifficulty = bsDifficulty[bsDifficulty.find("-") +
                                     1:bsDifficulty.find(".")]
    workoutDescription = cleanTags("".join(str(x) for x in bsDescription))
    workoutExtraCredit = cleanTags("".join(str(x) for x in bsExtraCredit))

    return Workout(workoutUrl, workoutName, workoutExercises, workoutMuscles,
                   workoutFocus, workoutType, workoutDifficulty,
                   workoutDescription, workoutExtraCredit)
	def post(self):
		statusCode = 202
		emailAddress = self.request.get('emailAddress')
		workoutContents = json.loads(self.request.body)
		user = User.query(User.emailAddress==emailAddress).get()
		if user:
			statusCode = 201
			createdBy = emailAddress
			name = workoutContents["name"]
			description = workoutContents['description']
			tags = workoutContents['tags']
			rating = 5
			exercises = workoutContents['exercises']
			workout = Workout(createdBy=createdBy,
				name=name,
				description=description,
				tags=tags,
				rating=rating,
				exercises=json.dumps(exercises))
			workout.put()
			statusCode = 200
		self.response.write(json.dumps({'statusCode': statusCode}))
示例#5
0
 def setUp(self):
     self.dbInit = DBInterface('WorkoutHistoryUnitTest')
     self.Workout = Workout('Test', time.strftime('%d%m%Y'))
     self.Workout.Exercises.append(
         Set('Bench', 5, 140, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
     self.Workout.Exercises.append(
         Set('Bench', 5, 165, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
     self.Workout.Exercises.append(
         Set('Bench', 7, 180, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
     self.sets = list()
     self.sets.append(
         Set('Bench', 5, 140, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
     self.sets.append(
         Set('Bench', 5, 165, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
     self.sets.append(
         Set('Bench', 7, 180, 'Chest, Shoulders, Arms',
             time.strftime('%d%m%Y'), 1))
示例#6
0
class WorkoutTestCase(unittest.TestCase):
    def setUp(self):
        self.dbInit = DBInterface('WorkoutHistoryUnitTest')
        self.Workout = Workout('Test', time.strftime('%d%m%Y'))
        self.Workout.Exercises.append(
            Set('Bench', 5, 140, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        self.Workout.Exercises.append(
            Set('Bench', 5, 165, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        self.Workout.Exercises.append(
            Set('Bench', 7, 180, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        self.sets = list()
        self.sets.append(
            Set('Bench', 5, 140, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        self.sets.append(
            Set('Bench', 5, 165, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        self.sets.append(
            Set('Bench', 7, 180, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))

    def tearDown(self):
        self.dbInit.RemoveSetTable()
        self.sets = None
        self.dbInit = None
        print('tear down')

    def testDB_Init(self):
        self.assertTrue(os.path.isfile('WorkoutHistoryUnitTest.db'))

    def test_DB_Queue_Set(self):
        self.dbInit.QueueSet(self.sets[0])
        self.dbInit.QueueSet(self.sets[1])
        self.dbInit.QueueSet(self.sets[2])
        self.assertTrue(self.dbInit.QueueLevel() == 3)

    def test_commit_set(self):
        self.dbInit.QueueSet(self.sets[0])
        self.dbInit.CommitQueue()
        print('The queue is', len(self.dbInit.ReadSetsDb()))
        self.assertTrue(len(self.dbInit.ReadSetsDb()) == 1)

    def test_commit_set_read_it_back(self):
        self.dbInit.QueueSet(self.sets[0])
        self.dbInit.CommitQueue()
        temp = self.dbInit.ReadSetsDb()
        setFromDb = Set(temp[0][0], temp[0][1], temp[0][2], temp[0][3],
                        temp[0][4], temp[0][5])
        print(self.sets[0])
        print(setFromDb)
        self.assertTrue(setFromDb.Date == self.sets[0].Date)

    def test_remove_set(self):
        self.dbInit.QueueSet(self.sets[0])
        self.dbInit.CommitQueue()
        self.dbInit.DeleteSet(self.sets[0])
        self.assertTrue(len(self.dbInit.ReadSetsDb()) == 0)

    def test_Calc_Volume_Set(self):
        self.sets.append(
            Set('Bench', 7, 185, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        # 7 * 185 = 1295
        self.assertTrue(self.sets[-1].calcVolume() == 1295)

    def test_Est_1RM_Set(self):
        self.sets.append(
            Set('Bench', 7, 200, 'Chest, Shoulders, Arms',
                time.strftime('%d%m%Y'), 1))
        est1Rm = self.sets[-1].calcEst1RM()
        self.assertTrue(est1Rm == 245)

    def test_Calc_Volume_Workout(self):
        print('The volume of the workout is', self.Workout.calc_Volume())
        self.assertTrue(self.Workout.calc_Volume() == 2785)