Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- homeFigure = uifigure('Name','Table Modifier');
- HOME_FIGURE_WIDTH = homeFigure.Position(3);
- HOME_FIGURE_HEIGHT = homeFigure.Position(4);
- taskDropDown = uidropdown(homeFigure);
- TASK_DROPDOWN_WIDTH = 200;
- TASK_DROPDOWN_HEIGHT = 22;
- TASK_DROPDOWN_LEFT = HOME_FIGURE_WIDTH / 2 - TASK_DROPDOWN_WIDTH / 2;
- TASK_DROPDOWN_BOTTOM = HOME_FIGURE_HEIGHT * 3 / 4 - TASK_DROPDOWN_HEIGHT / 2;
- taskDropDown.Position = [TASK_DROPDOWN_LEFT,TASK_DROPDOWN_BOTTOM,TASK_DROPDOWN_WIDTH,TASK_DROPDOWN_HEIGHT];
- taskDropDown.Items = {'Open a Loot Container'};
- nextButton = uibutton(homeFigure,'Text','Next','ButtonPushedFcn',@(nextButton,event) mainNextButtonPushed(nextButton,taskDropDown.Value));
- NEXT_BUTTON_WIDTH = 100;
- NEXT_BUTTON_HEIGHT = 22;
- NEXT_BUTTON_LEFT = HOME_FIGURE_WIDTH / 2 - NEXT_BUTTON_WIDTH / 2;
- NEXT_BUTTON_BOTTOM = HOME_FIGURE_HEIGHT / 4 - NEXT_BUTTON_HEIGHT / 2;
- nextButton.Position = [NEXT_BUTTON_LEFT,NEXT_BUTTON_BOTTOM,NEXT_BUTTON_WIDTH,NEXT_BUTTON_HEIGHT];
- function mainNextButtonPushed(~,task)
- if strcmp(task,'Open a Loot Container')
- openLootContainer()
- else
- throw(MException('code is wrong'));
- end
- end
- function openLootContainer()
- containerTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt','PreserveVariableNames',true);
- openLootContainerFigure = uifigure('Name','Open a Loot Container');
- OPEN_LOOT_CONTAINER_WIDTH = openLootContainerFigure.Position(3);
- OPEN_LOOT_CONTAINER_HEIGHT = openLootContainerFigure.Position(4);
- lootContainerDropDown = uidropdown(openLootContainerFigure);
- lootContainerDropDown.Items = containerTable{:,1};
- LOOT_CONTAINER_DROPDOWN_WIDTH = 200;
- LOOT_CONTAINER_DROPDOWN_HEIGHT = 22;
- LOOT_CONTAINER_DROPDOWN_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - LOOT_CONTAINER_DROPDOWN_WIDTH / 2;
- LOOT_CONTAINER_DROPDOWN_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT * 3 / 4 - LOOT_CONTAINER_DROPDOWN_HEIGHT / 2;
- lootContainerDropDown.Position = [LOOT_CONTAINER_DROPDOWN_LEFT,LOOT_CONTAINER_DROPDOWN_BOTTOM,LOOT_CONTAINER_DROPDOWN_WIDTH,LOOT_CONTAINER_DROPDOWN_HEIGHT];
- nItemsField = uieditfield(openLootContainerFigure);
- ITEMS_FIELD_WIDTH = 200;
- ITEMS_FIELD_HEIGHT = 22;
- ITEMS_FIELD_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - ITEMS_FIELD_WIDTH / 2;
- ITEMS_FIELD_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT / 2 - ITEMS_FIELD_HEIGHT / 2;
- nItemsField.Position = [ITEMS_FIELD_LEFT,ITEMS_FIELD_BOTTOM,ITEMS_FIELD_WIDTH,ITEMS_FIELD_HEIGHT];
- nextButton = uibutton(openLootContainerFigure,'Text','Next','ButtonPushedFcn',@(nextButton,event) lootContainerNextButtonPushed(nextButton,openLootContainerFigure,lootContainerDropDown.Value,nItemsField.Value));
- NEXT_BUTTON_WIDTH = 100;
- NEXT_BUTTON_HEIGHT = 22;
- NEXT_BUTTON_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - NEXT_BUTTON_WIDTH / 2;
- NEXT_BUTTON_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT / 4 - NEXT_BUTTON_HEIGHT / 2;
- nextButton.Position = [NEXT_BUTTON_LEFT,NEXT_BUTTON_BOTTOM,NEXT_BUTTON_WIDTH,NEXT_BUTTON_HEIGHT];
- end
- function lootContainerNextButtonPushed(~,openLootContainerFigure,lootContainer,nItems)
- close(openLootContainerFigure);
- containerTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt','PreserveVariableNames',true);
- for i=1:height(containerTable)
- if strcmp(containerTable{i,1},lootContainer)
- containerTable{i,2} = containerTable{i,2} + 1;
- break
- end
- end
- writetable(containerTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt');
- itemTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt','PreserveVariableNames',true);
- items = "";
- for i=1:height(itemTable)
- if strcmp(itemTable{i,1}, lootContainer)
- items = vertcat(items,itemTable{i,2});
- end
- end
- items = items(2:length(items));
- itemsFoundFigure = uifigure('Name','What Items Did You Find?');
- ITEMS_FOUND_WIDTH = itemsFoundFigure.Position(3);
- ITEMS_FOUND_HEIGHT = itemsFoundFigure.Position(4);
- bottomModifier = 11 / 11;
- for i=1:str2num(nItems)
- bottomModifier = bottomModifier - 1 / 11;
- ITEM_DROPDOWN_WIDTH = 200;
- ITEM_DROPDOWN_HEIGHT = 22;
- ITEM_DROPDOWN_LEFT = ITEMS_FOUND_WIDTH / 2 - ITEM_DROPDOWN_WIDTH / 2;
- itemDropDown = uidropdown(itemsFoundFigure);
- itemDropDown.Position = [ITEM_DROPDOWN_LEFT,ITEMS_FOUND_HEIGHT * bottomModifier - ITEM_DROPDOWN_HEIGHT / 2,ITEM_DROPDOWN_WIDTH,ITEM_DROPDOWN_HEIGHT];
- itemDropDown.Items = items;
- end
- submitButton = uibutton(itemsFoundFigure,'Text','Submit','ButtonPushedFcn',@(submitButton,event) submitButtonPushed(submitButton,itemsFoundFigure,itemsFoundFigure.Children,lootContainer));
- submitButton.Position = [ITEM_DROPDOWN_LEFT,ITEM_DROPDOWN_HEIGHT,ITEM_DROPDOWN_WIDTH,ITEM_DROPDOWN_HEIGHT];
- end
- function submitButtonPushed(~,itemsFoundFigure,uiChildren,lootContainer)
- close(itemsFoundFigure);
- itemTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt','PreserveVariableNames',true);
- for i=1:length(uiChildren)
- child = uiChildren(i,1);
- if strcmp(class(child),'matlab.ui.control.DropDown')
- for i=1:height(itemTable)
- if (strcmp(itemTable{i,1},lootContainer) && strcmp(itemTable{i,2},child.Value))
- itemTable{i,3} = itemTable{i,3} + 1;
- end
- end
- end
- end
- writetable(itemTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt');
- end
- %% Create Loot Container Links
- lootContainerURL = "https://escapefromtarkov.gamepedia.com/Category:Loot_Containers";
- lootContainerHTML = webread(lootContainerURL);
- lootContainerTree = htmlTree(lootContainerHTML);
- aElementTrees = findElement(lootContainerTree,"A");
- links = getAttribute(aElementTrees,"href");
- abbreviatedContainerLinks = vertcat(links(10:20),links(23:38));
- for i=1:length(abbreviatedContainerLinks)
- containerNames(i,1) = strrep(extractBetween(abbreviatedContainerLinks(i,1),2,strlength(abbreviatedContainerLinks(i,1))),'_',' ');
- end
- clear i;
- strrep(containerNames,'_',' ');
- containerURLS = strcat("https://escapefromtarkov.gamepedia.com",abbreviatedContainerLinks);
- %% Create Loot Container Item Arrays
- for i=1:length(containerURLS)
- containerHTMLS{i,1} = cellstr(webread(containerURLS(i,1)));
- containerTrees(i,1) = htmlTree(containerHTMLS{i,1});
- end
- clear i;
- for i=1:length(containerHTMLS)
- containerAElements{i,1} = findElement(containerTrees(i,1),"A");
- containerAText{i,1} = extractHTMLText(containerAElements{i,1});
- end
- clear i;
- containerItems{1,1} = containerAText{1,1}(41:381);
- containerItems{2,1} = containerAText{2,1}(18);
- containerItems{3,1} = containerAText{3,1}(19);
- containerItems{4,1} = containerAText{4,1}(23:119);
- containerItems{5,1} = containerAText{5,1}(17:207);
- containerItems{6,1} = containerAText{6,1}(16:52);
- containerItems{7,1} = containerAText{7,1}(17:22);
- containerItems{8,1} = containerAText{8,1}(41:389);
- containerItems{9,1} = containerAText{9,1}(19:179);
- containerItems{10,1} = containerAText{10,1}(26:31);
- containerItems{11,1} = containerAText{11,1}(27);
- containerItems{12,1} = containerAText{12,1}(16:47);
- containerItems{13,1} = containerAText{13,1}(18:34);
- containerItems{14,1} = containerAText{14,1}(16:44);
- containerItems{15,1} = vertcat(containerAText{15,1}(17:27),"Secure Flash drive");
- containerItems{16,1} = containerAText{16,1}(21:86);
- containerItems{17,1} = containerAText{17,1}(16:41);
- containerItems{18,1} = containerAText{18,1}(21:41);
- containerItems{19,1} = containerAText{19,1}(19:225);
- containerItems{20,1} = containerAText{20,1}(16:88);
- containerItems{21,1} = containerAText{21,1}(19:62);
- containerItems{22,1} = containerAText{22,1}(16:432);
- containerItems{23,1} = containerAText{23,1}(16:459);
- containerItems{24,1} = containerAText{24,1}(16:432);
- containerItems{25,1} = containerAText{25,1}(16:431);
- containerItems{26,1} = containerAText{26,1}(17:104);
- containerItems{27,1} = containerAText{27,1}(16:221);
- for i=1:length(containerItems)
- containerItems{i,1} = sort(containerItems{i,1});
- end
- clear i;
- %% Create Rarity Data Tables
- nItems = 0;
- itemNames = "";
- dupedContainerNames = "";
- for i=1:length(containerItems)
- nItems = nItems + length(containerItems{i,1});
- itemNames = vertcat(itemNames,containerItems{i,1});
- for j=1:length(containerItems{i,1})
- dupedContainerNames = vertcat(dupedContainerNames,containerNames(i,1));
- end
- end
- clear i;
- clear j;
- itemNames = itemNames(2:length(itemNames));
- dupedContainerNames = dupedContainerNames(2:length(dupedContainerNames));
- %table
- %loot container name | times opened
- containerTable = table('Size',[27,2],'VariableTypes',{'string','int8'},'VariableNames',{'Container Name','Times Opened'});
- for i=1:height(containerTable)
- containerTable{:,1} = containerNames;
- end
- clear i;
- %loot container name | item | quantity found | best trader price | avg flea
- %arket price
- itemTable = table('Size',[nItems,5],'VariableTypes',{'string','string','int8','int8','int8'},'VariableNames',{'Container Name','Item Name','Quantity Found','Best Trader Price','Average Flea Market Price'});
- itemTable{:,1} = dupedContainerNames(:,1);
- itemTable{:,2} = itemNames(:,1);
- %% Write Tables to .txt File
- writetable(containerTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt');
- writetable(itemTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt');
Add Comment
Please, Sign In to add comment