markvigliotti

tarky items

Apr 19th, 2020
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.66 KB | None | 0 0
  1. homeFigure = uifigure('Name','Table Modifier');
  2. HOME_FIGURE_WIDTH = homeFigure.Position(3);
  3. HOME_FIGURE_HEIGHT = homeFigure.Position(4);
  4.  
  5. taskDropDown = uidropdown(homeFigure);
  6. TASK_DROPDOWN_WIDTH = 200;
  7. TASK_DROPDOWN_HEIGHT = 22;
  8. TASK_DROPDOWN_LEFT = HOME_FIGURE_WIDTH / 2 - TASK_DROPDOWN_WIDTH / 2;
  9. TASK_DROPDOWN_BOTTOM = HOME_FIGURE_HEIGHT * 3 / 4 - TASK_DROPDOWN_HEIGHT / 2;
  10. taskDropDown.Position = [TASK_DROPDOWN_LEFT,TASK_DROPDOWN_BOTTOM,TASK_DROPDOWN_WIDTH,TASK_DROPDOWN_HEIGHT];
  11. taskDropDown.Items = {'Open a Loot Container'};
  12.  
  13. nextButton = uibutton(homeFigure,'Text','Next','ButtonPushedFcn',@(nextButton,event) mainNextButtonPushed(nextButton,taskDropDown.Value));
  14. NEXT_BUTTON_WIDTH = 100;
  15. NEXT_BUTTON_HEIGHT = 22;
  16. NEXT_BUTTON_LEFT = HOME_FIGURE_WIDTH / 2 - NEXT_BUTTON_WIDTH / 2;
  17. NEXT_BUTTON_BOTTOM = HOME_FIGURE_HEIGHT / 4 - NEXT_BUTTON_HEIGHT / 2;
  18. nextButton.Position = [NEXT_BUTTON_LEFT,NEXT_BUTTON_BOTTOM,NEXT_BUTTON_WIDTH,NEXT_BUTTON_HEIGHT];
  19.  
  20. function mainNextButtonPushed(~,task)
  21. if strcmp(task,'Open a Loot Container')
  22. openLootContainer()
  23. else
  24. throw(MException('code is wrong'));
  25. end
  26. end
  27.  
  28. function openLootContainer()
  29. containerTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt','PreserveVariableNames',true);
  30.  
  31. openLootContainerFigure = uifigure('Name','Open a Loot Container');
  32. OPEN_LOOT_CONTAINER_WIDTH = openLootContainerFigure.Position(3);
  33. OPEN_LOOT_CONTAINER_HEIGHT = openLootContainerFigure.Position(4);
  34.  
  35. lootContainerDropDown = uidropdown(openLootContainerFigure);
  36. lootContainerDropDown.Items = containerTable{:,1};
  37. LOOT_CONTAINER_DROPDOWN_WIDTH = 200;
  38. LOOT_CONTAINER_DROPDOWN_HEIGHT = 22;
  39. LOOT_CONTAINER_DROPDOWN_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - LOOT_CONTAINER_DROPDOWN_WIDTH / 2;
  40. LOOT_CONTAINER_DROPDOWN_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT * 3 / 4 - LOOT_CONTAINER_DROPDOWN_HEIGHT / 2;
  41. lootContainerDropDown.Position = [LOOT_CONTAINER_DROPDOWN_LEFT,LOOT_CONTAINER_DROPDOWN_BOTTOM,LOOT_CONTAINER_DROPDOWN_WIDTH,LOOT_CONTAINER_DROPDOWN_HEIGHT];
  42.  
  43. nItemsField = uieditfield(openLootContainerFigure);
  44. ITEMS_FIELD_WIDTH = 200;
  45. ITEMS_FIELD_HEIGHT = 22;
  46. ITEMS_FIELD_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - ITEMS_FIELD_WIDTH / 2;
  47. ITEMS_FIELD_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT / 2 - ITEMS_FIELD_HEIGHT / 2;
  48. nItemsField.Position = [ITEMS_FIELD_LEFT,ITEMS_FIELD_BOTTOM,ITEMS_FIELD_WIDTH,ITEMS_FIELD_HEIGHT];
  49.  
  50. nextButton = uibutton(openLootContainerFigure,'Text','Next','ButtonPushedFcn',@(nextButton,event) lootContainerNextButtonPushed(nextButton,openLootContainerFigure,lootContainerDropDown.Value,nItemsField.Value));
  51. NEXT_BUTTON_WIDTH = 100;
  52. NEXT_BUTTON_HEIGHT = 22;
  53. NEXT_BUTTON_LEFT = OPEN_LOOT_CONTAINER_WIDTH / 2 - NEXT_BUTTON_WIDTH / 2;
  54. NEXT_BUTTON_BOTTOM = OPEN_LOOT_CONTAINER_HEIGHT / 4 - NEXT_BUTTON_HEIGHT / 2;
  55. nextButton.Position = [NEXT_BUTTON_LEFT,NEXT_BUTTON_BOTTOM,NEXT_BUTTON_WIDTH,NEXT_BUTTON_HEIGHT];
  56. end
  57.  
  58. function lootContainerNextButtonPushed(~,openLootContainerFigure,lootContainer,nItems)
  59. close(openLootContainerFigure);
  60.  
  61. containerTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt','PreserveVariableNames',true);
  62. for i=1:height(containerTable)
  63. if strcmp(containerTable{i,1},lootContainer)
  64. containerTable{i,2} = containerTable{i,2} + 1;
  65. break
  66. end
  67. end
  68. writetable(containerTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt');
  69.  
  70. itemTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt','PreserveVariableNames',true);
  71.  
  72. items = "";
  73. for i=1:height(itemTable)
  74. if strcmp(itemTable{i,1}, lootContainer)
  75. items = vertcat(items,itemTable{i,2});
  76. end
  77. end
  78. items = items(2:length(items));
  79.  
  80. itemsFoundFigure = uifigure('Name','What Items Did You Find?');
  81. ITEMS_FOUND_WIDTH = itemsFoundFigure.Position(3);
  82. ITEMS_FOUND_HEIGHT = itemsFoundFigure.Position(4);
  83.  
  84. bottomModifier = 11 / 11;
  85. for i=1:str2num(nItems)
  86. bottomModifier = bottomModifier - 1 / 11;
  87. ITEM_DROPDOWN_WIDTH = 200;
  88. ITEM_DROPDOWN_HEIGHT = 22;
  89. ITEM_DROPDOWN_LEFT = ITEMS_FOUND_WIDTH / 2 - ITEM_DROPDOWN_WIDTH / 2;
  90. itemDropDown = uidropdown(itemsFoundFigure);
  91. itemDropDown.Position = [ITEM_DROPDOWN_LEFT,ITEMS_FOUND_HEIGHT * bottomModifier - ITEM_DROPDOWN_HEIGHT / 2,ITEM_DROPDOWN_WIDTH,ITEM_DROPDOWN_HEIGHT];
  92. itemDropDown.Items = items;
  93. end
  94.  
  95. submitButton = uibutton(itemsFoundFigure,'Text','Submit','ButtonPushedFcn',@(submitButton,event) submitButtonPushed(submitButton,itemsFoundFigure,itemsFoundFigure.Children,lootContainer));
  96. submitButton.Position = [ITEM_DROPDOWN_LEFT,ITEM_DROPDOWN_HEIGHT,ITEM_DROPDOWN_WIDTH,ITEM_DROPDOWN_HEIGHT];
  97. end
  98.  
  99. function submitButtonPushed(~,itemsFoundFigure,uiChildren,lootContainer)
  100. close(itemsFoundFigure);
  101.  
  102. itemTable = readtable('C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt','PreserveVariableNames',true);
  103.  
  104. for i=1:length(uiChildren)
  105. child = uiChildren(i,1);
  106. if strcmp(class(child),'matlab.ui.control.DropDown')
  107. for i=1:height(itemTable)
  108. if (strcmp(itemTable{i,1},lootContainer) && strcmp(itemTable{i,2},child.Value))
  109. itemTable{i,3} = itemTable{i,3} + 1;
  110. end
  111. end
  112. end
  113. end
  114.  
  115. writetable(itemTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt');
  116. end
  117.  
  118.  
  119.  
  120. %% Create Loot Container Links
  121. lootContainerURL = "https://escapefromtarkov.gamepedia.com/Category:Loot_Containers";
  122. lootContainerHTML = webread(lootContainerURL);
  123. lootContainerTree = htmlTree(lootContainerHTML);
  124. aElementTrees = findElement(lootContainerTree,"A");
  125. links = getAttribute(aElementTrees,"href");
  126. abbreviatedContainerLinks = vertcat(links(10:20),links(23:38));
  127. for i=1:length(abbreviatedContainerLinks)
  128. containerNames(i,1) = strrep(extractBetween(abbreviatedContainerLinks(i,1),2,strlength(abbreviatedContainerLinks(i,1))),'_',' ');
  129. end
  130. clear i;
  131. strrep(containerNames,'_',' ');
  132. containerURLS = strcat("https://escapefromtarkov.gamepedia.com",abbreviatedContainerLinks);
  133. %% Create Loot Container Item Arrays
  134. for i=1:length(containerURLS)
  135. containerHTMLS{i,1} = cellstr(webread(containerURLS(i,1)));
  136. containerTrees(i,1) = htmlTree(containerHTMLS{i,1});
  137. end
  138. clear i;
  139. for i=1:length(containerHTMLS)
  140. containerAElements{i,1} = findElement(containerTrees(i,1),"A");
  141. containerAText{i,1} = extractHTMLText(containerAElements{i,1});
  142. end
  143. clear i;
  144. containerItems{1,1} = containerAText{1,1}(41:381);
  145. containerItems{2,1} = containerAText{2,1}(18);
  146. containerItems{3,1} = containerAText{3,1}(19);
  147. containerItems{4,1} = containerAText{4,1}(23:119);
  148. containerItems{5,1} = containerAText{5,1}(17:207);
  149. containerItems{6,1} = containerAText{6,1}(16:52);
  150. containerItems{7,1} = containerAText{7,1}(17:22);
  151. containerItems{8,1} = containerAText{8,1}(41:389);
  152. containerItems{9,1} = containerAText{9,1}(19:179);
  153. containerItems{10,1} = containerAText{10,1}(26:31);
  154. containerItems{11,1} = containerAText{11,1}(27);
  155. containerItems{12,1} = containerAText{12,1}(16:47);
  156. containerItems{13,1} = containerAText{13,1}(18:34);
  157. containerItems{14,1} = containerAText{14,1}(16:44);
  158. containerItems{15,1} = vertcat(containerAText{15,1}(17:27),"Secure Flash drive");
  159. containerItems{16,1} = containerAText{16,1}(21:86);
  160. containerItems{17,1} = containerAText{17,1}(16:41);
  161. containerItems{18,1} = containerAText{18,1}(21:41);
  162. containerItems{19,1} = containerAText{19,1}(19:225);
  163. containerItems{20,1} = containerAText{20,1}(16:88);
  164. containerItems{21,1} = containerAText{21,1}(19:62);
  165. containerItems{22,1} = containerAText{22,1}(16:432);
  166. containerItems{23,1} = containerAText{23,1}(16:459);
  167. containerItems{24,1} = containerAText{24,1}(16:432);
  168. containerItems{25,1} = containerAText{25,1}(16:431);
  169. containerItems{26,1} = containerAText{26,1}(17:104);
  170. containerItems{27,1} = containerAText{27,1}(16:221);
  171. for i=1:length(containerItems)
  172. containerItems{i,1} = sort(containerItems{i,1});
  173. end
  174. clear i;
  175. %% Create Rarity Data Tables
  176. nItems = 0;
  177. itemNames = "";
  178. dupedContainerNames = "";
  179. for i=1:length(containerItems)
  180. nItems = nItems + length(containerItems{i,1});
  181. itemNames = vertcat(itemNames,containerItems{i,1});
  182. for j=1:length(containerItems{i,1})
  183. dupedContainerNames = vertcat(dupedContainerNames,containerNames(i,1));
  184. end
  185. end
  186. clear i;
  187. clear j;
  188. itemNames = itemNames(2:length(itemNames));
  189. dupedContainerNames = dupedContainerNames(2:length(dupedContainerNames));
  190. %table
  191. %loot container name | times opened
  192. containerTable = table('Size',[27,2],'VariableTypes',{'string','int8'},'VariableNames',{'Container Name','Times Opened'});
  193. for i=1:height(containerTable)
  194. containerTable{:,1} = containerNames;
  195. end
  196. clear i;
  197. %loot container name | item | quantity found | best trader price | avg flea
  198. %arket price
  199. 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'});
  200. itemTable{:,1} = dupedContainerNames(:,1);
  201. itemTable{:,2} = itemNames(:,1);
  202. %% Write Tables to .txt File
  203. writetable(containerTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ContainerTable.txt');
  204. writetable(itemTable,'C:\Users\mvigl\Desktop\School\Tarkov Item Finding Data\HTML Loading\ItemTable.txt');
Add Comment
Please, Sign In to add comment